`sorted()`函数: Python中的`sorted()`函数用法总结
Python中的sorted()函数是非常常用的一个函数,它可以对列表、元组、字符串等可迭代对象进行排序,并可以根据自定义规则进行排序,十分灵活。在本篇文章中,我们将详细介绍sorted()函数的用法,包括函数参数、返回值、自定义排序规则等方面。
一、函数参数
sorted()函数的参数主要分为两类,一类是必选参数,另一类是可选参数。下面先来介绍必选参数:
1. iterable
必须指定要排序的可迭代对象,例如列表、元组、字符串等。
2. key
可选的参数,用于指定一个函数,作为排序的依据。默认情况下,sorted()函数会根据元素的大小进行排序。如果需要按照自定义规则进行排序,那么可以使用key参数来指定排序的规则。
3. reverse
可选的参数,默认为False,表示升序排序,如果需要按照降序进行排序,那么可以将该参数设置为True。
二、返回值
sorted()函数的返回值为一个新的列表,其中包含按照指定规则排序后的对象。需要注意的是,sorted()函数不会改变原列表。
三、示例代码
下面是一些示例代码,用于演示sorted()函数的使用方法。
1. 对一个列表进行升序排序
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3] sorted_lst = sorted(lst) print(sorted_lst) # [1, 1, 2, 3, 3, 4, 5, 5, 6, 9]
2. 对一个字符串进行升序排序
s = 'sorted'
sorted_s = sorted(s)
print(''.join(sorted_s)) # 'deorst'
3. 对一个元组进行降序排序
t = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3) sorted_t = sorted(t, reverse=True) print(sorted_t) # [9, 6, 5, 5, 4, 3, 3, 2, 1, 1]
4. 对一个列表按照元素长度进行排序
lst = ['red', 'green', 'blue', 'orange', 'yellow'] sorted_lst = sorted(lst, key=len) print(sorted_lst) # ['red', 'blue', 'green', 'yellow', 'orange']
5. 对一个列表按照元素最后一个字符进行排序
lst = ['red', 'green', 'blue', 'orange', 'yellow'] sorted_lst = sorted(lst, key=lambda x: x[-1]) print(sorted_lst) # ['orange', 'blue', 'red', 'green', 'yellow']
以上示例代码仅仅是sorted()函数的一个小部分使用场景,无法覆盖所有情况。对于更为复杂的排序需求,需要使用更多的Python语言特性,例如lambda表达式、接口实现等等。
四、注意事项
1. sorted()函数返回的结果是一个新的列表,不会影响原来的列表。
2. key参数非常重要,可以根据自定义规则进行排序。
3. 如果需要对字典进行排序,需要先把字典的键或值提取出来作为可迭代对象。
4. 如果需要对集合进行排序,需要先把集合转换成列表或元组。
