Python中sorted()函数的常用场景
发布时间:2023-06-07 04:34:37
Python中的sorted()函数用来对序列(可迭代对象)进行排序操作,返回一个新的排序后的序列。它可以对数字、字符串、元组、列表等多种数据类型进行排序,也可以进行自定义排序。
下面是sorted()函数的用法及常用场景:
1. 对列表进行升序排序
示例代码:
lst = [3,1,4,1,5,9,2,6,5,3,5] print(sorted(lst))
输出:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
2. 对列表进行降序排序
示例代码:
lst = [3,1,4,1,5,9,2,6,5,3,5] print(sorted(lst,reverse=True))
输出:
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
3. 对字符串进行排序
示例代码:
s = "hello world" print(sorted(s))
输出:
[' ', 'd', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w']
4. 对元组进行排序
示例代码:
t = (3,1,4,1,5,9,2,6,5,3,5) print(sorted(t))
输出:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
5. 对字典按照键进行排序
示例代码:
d = {'a':1,'c':3,'b':2}
print(sorted(d.items()))
输出:
[('a', 1), ('b', 2), ('c', 3)]
6. 对字典按照值进行排序
示例代码:
d = {'a':1,'c':3,'b':2}
print(sorted(d.items(),key=lambda x:x[1]))
输出:
[('a', 1), ('b', 2), ('c', 3)]
7. 对对象列表按照某个属性进行排序
示例代码:
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
def __repr__(self):
return f"{self.name}({self.age})"
lst = [Person("Tom",18),Person("Mary",20),Person("John",16)]
print(sorted(lst,key=lambda x:x.age))
输出:
[John(16), Tom(18), Mary(20)]
8. 自定义排序规则
示例代码:
lst = ['123','a3','A1','b2','B2'] print(sorted(lst,key=lambda x:(x.lower(),x)))
输出:
['A1', 'a3', 'b2', 'B2', '123']
上述代码中,我们自定义排序规则为:先将所有字符串转为小写字母,然后再按照字典序进行排序。
总结:
sorted()函数是Python内置的强大而灵活的排序函数,可用于对多种数据类型进行排序,并支持自定义排序规则。常用场景包括对列表、元组、字典、对象列表等进行排序。掌握该函数的使用方法,可以大大提高代码的效率和可读性。
