在Python中,按照一定的规则将乱序的东西有序排列,通常我们会使用排序(sorting)的方法。Python的内置函数sorted()
和列表(list)的sort()
方法提供了强大的排序功能,支持多种排序规则。下面是一些基本示例来说明如何应用这些功能。
1. 使用sorted()
函数
sorted()
函数可以对所有可迭代的对象进行排序操作,返回一个新的列表,原列表不会被修改。
默认排序(升序)
my_list = [3, 1, 4, 1, 5, 9, 2]
sorted_list = sorted(my_list)
print(sorted_list) # 输出: [1, 1, 2, 3, 4, 5, 9]
降序排序
通过reverse
参数可以实现降序排序。
sorted_list_desc = sorted(my_list, reverse=True)
print(sorted_list_desc) # 输出: [9, 5, 4, 3, 2, 1, 1]
2. 使用列表的sort()
方法
与sorted()
函数不同,sort()
方法会直接修改原列表,不返回任何值(返回None
)。
默认排序(升序)
my_list = [3, 1, 4, 1, 5, 9, 2]
my_list.sort()
print(my_list) # 输出: [1, 1, 2, 3, 4, 5, 9]
降序排序
my_list.sort(reverse=True)
print(my_list) # 输出: [9, 5, 4, 3, 2, 1, 1]
3. 自定义排序规则
无论是sorted()
函数还是sort()
方法,都支持key
参数,用于指定一个函数,该函数会在每个元素上调用,并根据返回值来排序。
根据字符串长度排序
words = ['banana', 'pie', 'Washington', 'book']
sorted_words = sorted(words, key=len)
print(sorted_words) # 输出: ['pie', 'book', 'banana', 'Washington']
根据元组的第二个元素排序
tuples = [(1, 'one'), (3, 'three'), (2, 'two'), (4, 'four')]
sorted_tuples = sorted(tuples, key=lambda x: x[1])
print(sorted_tuples) # 输出: [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
在这些示例中,你可以看到如何使用Python的排序功能来根据不同的规则将乱序的列表或元组排序。通过key
参数,你可以轻松实现复杂的排序逻辑。