Python 自带了两种常用的排序方法:
sorted()
函数list.sort()
方法sorted()
函数sorted(iterable, key=None, reverse=False)
iterable
: 任何可迭代对象,如列表、元组、字符串等。key
: 一个函数,指定一个用于比较的排序关键字(比如按对象的某个属性排序),默认是按元素本身排序。reverse
: 如果设置为 True
,则按降序排序;默认为 False
,即升序排序。示例:
numbers = [3, 1, 4, 1, 5, 9]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出: [1, 1, 3, 4, 5, 9]
print(numbers) # 原列表不变: [3, 1, 4, 1, 5, 9]
# 按照字符串长度排序
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=len)
print(sorted_words) # 输出: ['date', 'apple', 'banana', 'cherry']
# 降序排序
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc) # 输出: [9, 5, 4, 3, 1, 1]
list.sort()
方法list.sort(key=None, reverse=False)
key
: 与 sorted()
函数相同,用于指定排序的关键字。reverse
: 是否按降序排序,默认为 False
(升序)。示例:
numbers = [3, 1, 4, 1, 5, 9]
numbers.sort()
print(numbers) # 原列表被修改: [1, 1, 3, 4, 5, 9]
# 按字符串长度排序
words = ["apple", "banana", "cherry", "date"]
words.sort(key=len)
print(words) # 原列表被修改: ['date', 'apple', 'banana', 'cherry']
# 降序排序
numbers.sort(reverse=True)
print(numbers) # 原列表被修改: [9, 5, 4, 3, 1, 1]
sorted()
返回一个排序后的新列表,适用于不希望修改原对象的场景。list.sort()
就地对列表进行排序,适用于需要原地修改的场景。