sorted()
函数是Python内置的一个函数,用于对可迭代对象进行排序。
- 基本用法
# 对列表进行排序
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
- 自定义排序规则
你可以提供一个自定义的排序关键字函数,来实现自定义的排序规则。
# 根据字符串长度进行排序
words = ['apple', 'banana', 'cherry', 'date', 'elderberry']
sorted_words = sorted(words, key=len)
print(sorted_words) # 输出: ['date', 'apple', 'elderberry', 'cherry', 'banana']
- 反向排序
你可以通过设置 reverse=True
来实现反向排序。
# 对数字进行反向排序
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers) # 输出: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
- 对字典进行排序
sorted()
函数也可以对字典的键或值进行排序。
# 对字典的键进行排序
d = {'banana': 3, 'apple': 4, 'cherry': 1, 'date': 5}
sorted_d = sorted(d.items(), key=lambda item: item[0])
print(sorted_d) # 输出: [('apple', 4), ('banana', 3), ('cherry', 1), ('date', 5)]
# 对字典的值进行排序
sorted_d_values = sorted(d.items(), key=lambda item: item[1])
print(sorted_d_values) # 输出: [('cherry', 1), ('banana', 3), ('apple', 4), ('date', 5)]
- 返回新的迭代器
sorted()
函数返回一个新的排序后的迭代器,原来的迭代器顺序不变。
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(numbers) # 输出: [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(sorted_numbers) # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
- 修改原列表
如果你想修改原列表的顺序,可以使用 list.sort()
方法。
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
numbers.sort()
print(numbers) # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
sorted()
和 list.sort()
的主要区别在于 sorted()
返回一个新的排序后的列表,原列表不变,而 list.sort()
则是直接修改原列表。