sort和sorted函数都是对对象元素进行排序。
参数:
reverse:默认为从小到大,如果需要降序,则设置为reverse=Truekey:用来指定一个函数来生成参与排序的键。这个函数将应用于每个元素,返回一个用于排序的键。默认本身进行比较- sorted 函数独有,
iterable:必需,表示要排序的可迭代对象,如列表、元组、字符串等。
my_list = ["apple", "banana", "cherry", "date", "elderberry"]
sorted_list = sorted(my_list, key=len)
print(sorted_list)
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5]
# 按元素的相反数进行逆序排序
my_list.sort(key=lambda x: -x)
print(my_list) # 输出: [9, 6, 5, 5, 4, 3, 2, 1, 1]
L = [('b', 2), ('a', 1), ('c', 3), ('d', 4)]
sorted(L, key=lambda x: x[1], reverse=True) # 使用Key参数和reverse参数
sorted(L, key=lambda x: (x[0], x[1])) # 使用key参数进行多条件排序,即如果x[0]相同,则比较x[1]
区别:
- sort 是在原始列表进行排序,sorted 会生成新的列表,只会返回列表对象
- sort只能用于列表对象,sorted 可以用于其他的可迭代对象,例如:元组、字符串等