如何使用Python内置函数sorted()
Python的内置函数sorted()可对任何序列进行排序,如列表、元组、字符串等,并返回一个新的已排序序列。sorted()函数有多种用法和可选参数,下面将介绍如何使用sorted()函数。
1、排序列表
示例:将一个列表按升序排列并输出
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] sorted_lst = sorted(lst) print(sorted_lst)
输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
2、按字符串长度排序
示例:将一个字符串列表按照字符串长度从小到大排序并输出
lst = ["apple", "banana", "cherry", "date", "elderberry"] sorted_lst = sorted(lst, key=len) print(sorted_lst)
输出:['date', 'apple', 'banana', 'cherry', 'elderberry']
其中,key参数传递了一个lambda表达式,该表达式返回字符串的长度。
3、按字母顺序排序
示例:将一个字符串列表按字母顺序排序并输出
lst = ["apple", "banana", "cherry", "date", "elderberry"] sorted_lst = sorted(lst) print(sorted_lst)
输出:['apple', 'banana', 'cherry', 'date', 'elderberry']
说明:sorted()函数默认按升序排序,因此直接调用sorted()函数即可。
4、按照多个条件排序
示例:将一个元组列表按照第二个元素升序排序,如果第二个元素相同,则按照 个元素降序排序
lst = [(3, "apple"), (2, "date"), (1, "banana"), (2, "cherry"), (1, "elderberry")] sorted_lst = sorted(lst, key=lambda x: (x[1], -x[0])) print(sorted_lst)
输出:[(3, 'apple'), (1, 'banana'), (2, 'cherry'), (2, 'date'), (1, 'elderberry')]
说明:key参数传递了一个lambda表达式,该表达式首先按照第二个元素升序排序,如果第二个元素相同,则按照 个元素降序排序。
5、对字典按照键或值进行排序
示例1:对一个字典按照键升序排序并输出
dct = {"banana": 3, "date": 2, "apple": 4, "elderberry": 1, "cherry": 2}
sorted_dct = dict(sorted(dct.items()))
print(sorted_dct)
输出:{'apple': 4, 'banana': 3, 'cherry': 2, 'date': 2, 'elderberry': 1}
说明:使用sorted()函数对字典进行排序时,会先转化为元组列表,再通过dict()函数转化为字典。
示例2:对一个字典按照值降序排序并输出
dct = {"banana": 3, "date": 2, "apple": 4, "elderberry": 1, "cherry": 2}
sorted_dct = dict(sorted(dct.items(), key=lambda x: x[1], reverse=True))
print(sorted_dct)
输出:{'apple': 4, 'banana': 3, 'cherry': 2, 'date': 2, 'elderberry': 1}
说明:key参数传递了一个lambda表达式,该表达式返回每个键值对的值,以实现对字典值的排序;reverse参数设为True实现降序排序。
在本文中,我们介绍了Python内置函数sorted()函数的多种用法,并给出了代码示例。这里需要注意的是,sorted()函数返回一个新的已排序序列,并不会改变原序列。如果要改变原序列,请使用列表的sort()方法。
