sort和 sorted函数(返回迭代器)

211 阅读1分钟

sort和sorted函数都是对对象元素进行排序。

参数:

  1. reverse :默认为从小到大,如果需要降序,则设置为reverse=True
  2. key:用来指定一个函数来生成参与排序的键。这个函数将应用于每个元素,返回一个用于排序的键。默认本身进行比较
  3. 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]

区别:

  1. sort 是在原始列表进行排序,sorted 会生成新的列表,只会返回列表对象
  2. sort只能用于列表对象,sorted 可以用于其他的可迭代对象,例如:元组、字符串等