字典是一个无序的数据结构,一般都不对其进行排序的。但是要想对字典进行排序,是可以通过sorted()函数进行操作。首先声明注意一点字典中的值需要为同一种数据类型;比如在本文中的值都是字符串类型。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 
 | sys = {'name': '张三',
 'age': '十八',
 'gender': '男'}
 
 
 new_sys = sorted(sys)
 print(new_sys)
 
 new_sys = sorted(sys.keys())
 print(new_sys)
 
 
 new_sys1 = sorted(sys.items(), key=lambda d: d[0], reverse=False)
 print(new_sys1)
 
 new_sys1 = sorted(sys.items(), reverse=False)
 print(new_sys1)
 
 
 new_sys1 = sorted(sys.values())
 print(new_sys1)
 
 
 new_sys2 = sorted(sys.items(),  key=lambda d: d[1], reverse=False)
 print(new_sys2)
 
 | 
输出为:
| 12
 3
 4
 5
 6
 
 | ['age', 'gender', 'name']['age', 'gender', 'name']
 [('age', '十八'), ('gender', '男'), ('name', '张三')]
 [('age', '十八'), ('gender', '男'), ('name', '张三')]
 ['man', '十八', '张三']
 [('gender', 'man'), ('age', '十八'), ('name', '张三')]
 
 | 
new_sys = sorted(sys)将字典直接传入到sorted函数中 ,sorted函数会默认根据字典的键k对字典进行排序,同时只取字典的键k的内容,并以列表的形式返回
| 1
 | new_sys1 = sorted(sys.items(), key=lambda d: d[0], reverse=False)
 | 
sys.items()这段代码,在打印输出后,会显示如下结果:
| 12
 3
 
 | dict_items([(‘name’, ‘张三’), (‘age’, ‘十八’), (‘gender’, ‘man’)])
 
 
 | 
key=lambda d: d[0] 是一个匿名函数;
其中:
d[0]是获取每个元组中的第一个元素,就是原sys字典中的key;并将匿名函数的返回值返回给sorted函数的key参数
reverse=False 排序默认是按照升序排列的,也可以改为True
sorted(sys.values()) sorted函数默认是根据键key排序的,所以想要根据值value排序,就需要在sys后面使用values(),获取字典的value值
| 1
 | new_sys2 = sorted(sys.items(), key=lambda d: d[1], reverse=False)
 | 
d[1]是获取每个元组中的第二个元素,就是原sys字典中的value;并将匿名函数的返回值返回给sorted函数的key参数