字典的排序:在学习python的时候,了解到相比于列表,字典是一个无序的数据结构,一般都不对其进行排序的。但是要想对字典进行排序,是可以通过sorted()函数进行操作的!
关于字典的排序,下面从键key 和 值value 进行代码的运行和分析:
【先看代码和执行结果,后面会进行详细的解析】
# 先定义一个字典,首先声明注意一点,本案例中的字典中的值需要为同一种数据类型;比如在本案例中的值都是字符串类型。
sys = {'name': '张三', 'age': '十八', 'gender': 'man'}
①根据字典的key排序
# 单独打印出排序后的key值 new_sys = sorted(sys) print(new_sys) new_sys = sorted(sys.keys()) print(new_sys) # 根据key的升序排列,把key value都打印出来 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)
打印结果:
['age', 'gender', 'name'] ['age', 'gender', 'name'] [('age', '十八'), ('gender', 'man'), ('name', '张三')] [('age', '十八'), ('gender', 'man'), ('name', '张三')]
②根据字典的value值进行排序
# 单独打印出排序后的value值 new_sys1 = sorted(sys.values()) print(new_sys1) # 打印出根据value排序后的键值对的具体值 new_sys2 = sorted(sys.items(), key=lambda d: d[1], reverse=False) print(new_sys2)
打印结果:
['man', '十八', '张三'] [('gender', 'man'), ('age', '十八'), ('name', '张三')]
sorted()默认是按照升序排列,并且是按照ASCII码表的顺序排列的