欢迎访问宙启技术站
智能推送

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内置的强大而灵活的排序函数,可用于对多种数据类型进行排序,并支持自定义排序规则。常用场景包括对列表、元组、字典、对象列表等进行排序。掌握该函数的使用方法,可以大大提高代码的效率和可读性。