Python中的sorted()函数介绍
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参数指定是否按照倒序排序。
