当我们需要按照特定的顺序重新排列数据集合时,排序就是一个必须要使用的操作。在Python中,可以通过sorted()函数来完成排序操作。
sorted()函数基本使用方法
sorted() 函数可以用于对列表、元组、字典等可迭代对象进行排序,其常见语法格式如下:
sorted(iterable[,key[,reverse]])
其中,iterable表示需要排序的可遍历对象,可以是列表、元组、集合、字典等。key参数是用来指定一个函数,该函数应用于每个元素后用于排序,reverse参数用来控制升序或降序排序,默认为升序(reverse=False)。
下面,我们通过一些简单的示例来讲解sorted()函数的用法。
例子1:对列表进行排序
如下所示定义了一个包含乱序数字的列表,并使用sorted()函数进行从小到大排序:
>>> nums = [8, 4, 2, 9, 1, 5, 6]
>>> sorted_nums = sorted(nums)
>>> print(sorted_nums)
[1, 2, 4, 5, 6, 8, 9]
例子2:对字典按值进行排序
如下所示定义了一个字典,并使用sorted()函数按值从小到大排序:
>>> data = {'a': 8, 'b': 2, 'c': 5, 'd': 1}
>>> sorted_data = {k: v for k, v in sorted(data.items(), key=lambda item: item[1])}
>>> print(sorted_data)
{'d': 1, 'b': 2, 'c': 5, 'a': 8}
在上述实例中,使用了lambda表达式定义了一个函数,它用于指定按照字典中的值排序而非键。sorted()函数应用于字典中的items()方法,遍历键值对,按照字典的值进行排序。
sorted()函数参数详解
下面,我们将详细介绍sorted()函数的参数及其含义。
iterable
iterable参数表示需要排序的可迭代对象,可以是列表、元组、集合、字典等。如果需要在解释器中通过交互模式进行传入,则需要使用方括号将参数括起来:
>>> sorted([8, 4, 2], reverse=True)
[8, 4, 2]
key
key参数用来指定一个函数,以每个元素作为输入并返回一个值用于排序操作。该参数是可选的,并且默认值为 None。
例如,下面的例子中,通过key指定了一个lambda表达式,以列表中的元素的字符串形式的第二个字符进行排序:
>>> fruits = ['apple', 'pear', 'cherry', 'banana']
>>> sorted_fruits = sorted(fruits, key=lambda x: x[1])
>>> print(sorted_fruits)
['banana', 'pear', 'cherry', 'apple']
reverse
reverse参数用于控制排序是升序还是降序,默认为 False(升序)。
>>> sorted([1, 2, 3], reverse=True)
[3, 2, 1]
总结
在Python中,通过sorted()函数可以方便地对列表、元组、字典等可迭代对象进行排序操作,通过指定key参数可以实现按照特定规则排序,通过reverse参数可以实现升序或降序排序。