Python排序

1.简单排序

lst1 = (5,4,2,-1,3)
lst2 = ('F','k','A','a','B','b')#字符串类型的排序按照ASCII的大小进行比较
L1 = sorted(lst1)
L2 = sorted(lst2)
print(L1)
print(L2)
#[-1, 2, 3, 4, 5]
#['A', 'B', 'F', 'a', 'b', 'k']
lst1 = ["banana", "apple", "cherry","ao"]
L1 = sorted(lst1)
print(L1)
#['ao', 'apple', 'banana', 'cherry']

A-Z(ASCII值): 65-90
a-z(ASCII值): 97-122
按照每个字符串字母顺序排序的结果。o < p 所以ao排在apple前面

2.升序/降序

lst1 = (5,4,2,-1,3)
lst2 = ('F','k','A','a','B','b')
L1 = sorted(lst1)#默认是False,升序
L2 = sorted(lst1, reverse = False)
L3 = sorted(lst1, reverse = True)
print(L1)
print(L2)
print(L3)
#[-1, 2, 3, 4, 5]
#[-1, 2, 3, 4, 5]
#[5, 4, 3, 2, -1]

3.参数 key

(1)按长度排序

用于字符串、列表等,可以根据长度来排序。

lst1 = ["banana", "apple", "cherry"]
L1 = sorted(lst1, key=len)
print(L1)
#['apple', 'banana', 'cherry']

(2)忽略字母大小写排序

lst1 = ["banana", "Apple", "cherry"]
L1 = sorted(lst1, key=str.lower)
print(L1)
#['Apple', 'banana', 'cherry']

key=str.lower 的作用是将每个元素转换成小写,然后按照转换后的结果进行排序。

(3)逆序

lst1 = [1, 2, 3, 4]
L1 = sorted(lst1, key=lambda x: -x)
print(L1)
#[4, 3, 2, 1]
lst1 = [2, -1, 0, 1, 6, 4]
L1 = sorted(lst1, key=lambda x:x*-1)
print(L1)
#[6, 4, 2, 1, 0, -1]

(4)按照二维矩阵下标相应的列进行排序

lst1 = [[200,35,168],[300,38,166],[237,39,167]]
L1 = sorted(lst1,key = lambda x:x[0])
print(L1)
#[[200, 35, 168], [237, 39, 167], [300, 38, 166]]

(5)对列表内字典的某一key进行排序

以 grade 的降序进行排序

a1 = [{"name": 'x', "grade": 78}, {"name": 'y', "grade": 99}, {"name": 'z', "grade": 69}]
a_1 = sorted(a1, key=lambda x:x["grade"], reverse=True)
#等价a_1 = sorted(a1, key=lambda x:-x["age"])
print(a_1)
#[{'name': 'y', 'grade': 99}, {'name': 'x', 'grade': 78}, {'name': 'z', 'grade': 69}]

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值