📜  Python中的 Sorted()函数(1)

📅  最后修改于: 2023-12-03 15:34:24.360000             🧑  作者: Mango

Python中的 sorted()函数

在Python中,sorted()函数是一个内置函数,它可以用于对可迭代对象进行排序,并返回一个新的排序后的列表。

需要注意的是,sorted()函数的原始数据不会被改变,而是返回新的排好序的列表。

以下是sorted()函数的基本用法:

sorted(iterable, key=None, reverse=False)

其中:

  • iterable:指定要排序的对象,可以是列表、元组、字符串、集合、字典等可迭代对象。
  • key:指定排序的依据,可以是一个函数或Lambda表达式。
  • reverse:默认排序是升序,reverse=True可以实现降序排序。
示例
a = [5, 2, 8, 9, 1, 3]
print(sorted(a))            # [1, 2, 3, 5, 8, 9]
print(sorted(a, reverse=True))    # [9, 8, 5, 3, 2, 1]
b = "zAbcDXbAC"
print(sorted(b))    # ['A', 'D', 'X', 'a', 'b', 'b', 'c', 'z']
print(sorted(b, key=str.lower))    # ['a', 'b', 'b', 'c', 'D', 'X', 'z', 'A', 'C']
c = {'name': 'Tom', 'age': 20, 'score': 80}
print(sorted(c))    # ['age', 'name', 'score']
print(sorted(c.items()))    # [('age', 20), ('name', 'Tom'), ('score', 80)]

以上示例演示了sorted()函数的基本用法,除了提供reverse参数来实现降序排序外,还可以通过key参数来定义一个函数或Lambda表达式来实现自定义的排序规则。

Lambda函数实现自定义排序

通过Lambda函数可以方便的实现复杂的排序规则,以下是一个示例:

students = [('Tom', 20, 80), ('Jack', 18, 90), ('Bob', 19, 70)]
sorted_students = sorted(students, key=lambda student: student[2], reverse=True)
print(sorted_students)

输出:

[('Jack', 18, 90), ('Tom', 20, 80), ('Bob', 19, 70)]

在上面的代码中,我们使用了Lambda函数来定义对元组的第3个元素进行排序的规则。

总结

sorted()函数是Python内置的一个排序函数,可以对列表、元组、字符串、集合、字典等对象进行排序,使用时可以通过key参数定义复杂的排序规则,返回值是一个新的排序后的列表。