欢迎访问宙启技术站
智能推送

Python中的sorted()函数介绍

发布时间:2023-05-21 01:20:27

Python中的sorted()函数是一个内置函数,可以对列表、元组、字典等可迭代的对象进行排序。在排序时,会按照一定的规则将对象中的元素排序,并返回一个新的列表。

sorted()函数的语法格式为:

sorted(iterable, key=None, reverse=False)

其中,参数iterable为要排序的可迭代对象,key为排序的关键字,reverse表示是否按照倒序排序。

如果不指定key参数,则默认按照元素的大小进行排序。排序时会将元素转换为一个可比较的对象进行比较。

以下是对sorted()函数的一些用例说明:

### 1. 对列表进行排序

对于一个列表,如下:

a = [4, 2, 3, 1, 5]

我们可以使用sorted()函数进行排序:

b = sorted(a)

该语句将会返回一个新的列表[1, 2, 3, 4, 5],而原有的列表a仍为原来的顺序。

### 2. 对元组进行排序

sorted()函数同样适用于元组:

t = (4, 2, 3, 1, 5)
b = sorted(t)

该语句将会返回一个新的元组(1, 2, 3, 4, 5),而原有的元组t仍为原来的顺序。

### 3. 对字典进行排序

对于一个字典,sorted()函数可以按照字典中的键或值进行排序。例如:

d = {'apple': 5, 'banana': 3, 'orange': 8, 'pear': 2}
b1 = sorted(d)      # 按照键排序,即['apple', 'banana', 'orange', 'pear']
b2 = sorted(d.values())   # 按照值排序,即[2, 3, 5, 8]
b3 = sorted(d.items(), key=lambda x:x[1]) # 按照值排序,返回元组列表 [('pear', 2), ('banana', 3), ('apple', 5), ('orange', 8)]

sorted(d)按照字典中的键进行排序,返回一个由键组成的排序列表。如果要按照值进行排序,需要使用d.values()获取字典中的值作为排序对象。

如果要按照字典中的值进行排序,还有另一种更具灵活性的方式,就是使用lambda表达式作为key参数:

sorted(d.items(), key=lambda x:x[1])

该语句将会返回一个按照字典中的值进行排序的元组列表。

### 4. 对其他可迭代对象进行排序

除了列表、元组和字典,sorted()函数还适用于其他可迭代对象,例如:

s = 'hello world'
b = sorted(s)

该语句将会返回一个由字符组成的排序列表[' ', 'd', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w']

### 5. 指定排序规则

在sorted()函数中,可以通过key参数指定排序规则,可以是一个函数或者一个lambda表达式。

例如,对于一个包含字符串的列表:

a = ['apple', 'banana', 'orange', 'pear', 'mango']

我们可以对字符串的长度进行排序:

b = sorted(a, key=lambda x:len(x))

该语句将会返回一个按照字符串长度进行排序的列表['pear', 'apple', 'mango', 'banana', 'orange']

### 6. 按照倒序排序

在sorted()函数中,可以通过reverse参数指定是否按照倒序排序。例如:

a = [4, 2, 3, 1, 5]
b = sorted(a, reverse=True)

该语句将会返回一个按照倒序(降序)排序的列表[5, 4, 3, 2, 1]

总之,sorted()函数在Python中是一个常用的内置排序函数,可以用于对列表、元组、字典等可迭代对象进行快速排序。在使用时,可以通过key参数指定排序规则,并且可以通过reverse参数指定是否按照倒序排序。