sorted是python的内置函数,并不是可变对象(列表、字典)的特有方法,sorted()函数需要一个参数(参数可以是列表、字典、元组、字符串),无论传递什么参数,都将返回一个以列表为容器的返回值,如果是字典将返回键的列表。
list:(推荐学习:Python视频教程)1
2
3
4
5>>> a = [4,3,7,8]
>>> sorted(a)
[3, 4, 7, 8]
>>> a
[4, 3, 7, 8]
即sorted会返会一个list副本,同时将原来list的值改变了可将这个返回的值赋给其他变量。
dict:1
2
3
4
5>>> b = {1:'ab',2:'degg',4:'ght',9:'d'}
>>> sorted(b)
[1, 2, 4, 9]
>>> b
{1:'ab', 2:'degg', 4:'ght', 9:'d'}
即sorted(dict)时,是按key排序,同时将key返回成一个列表。
或者指定排序的条件:1
2
3
4
5
6
7
8
9
10
11>>> b = {1:'ab',2:'degg',4:'ght',9:'d'}
>>> sorted(b.items(),key=lambda i:i[0]) #指定按字典里面的键排序
[(1,'ab'), (2,'degg'), (4,'ght'), (9,'d')]
>>>
>>>
>>> sorted(b.items(),key=lambda i:len(i[1])) #指定按字典里的value长度排序,默认从小到大
[(9,'d'), (1,'ab'), (4,'ght'), (2,'degg')]
>>>
>>>
>>> sorted(b.items(),key=lambda i:len(i[1]),reverse=True) #指定按字典里的value长度排序,同时进行翻转,即按value的长度从大到小排列
[(2,'degg'), (4,'ght'), (1,'ab'), (9,'d')]
过程为:b.iterms()得到字典b的[ (键,值)] 列表,通过key这个参数,指定排序的方式是键 ( [0] ) 还是值( [1] ),reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。