如何在Python中对字典进行排序?
字典是一种由键和值组成的数据结构。我们可以使用两个标准对字典进行排序 −
按键排序 − 按键在升序中排序字典。对值不予处理。
按值排序 − 按值的升序排列字典。
阅读更多:Python 教程
方法1 − 按键对字典进行排序
在此方法中,字典按其键的升序排列。
输入:
{2:90, 1: 100, 8: 3, 5: 67, 3: 5}
输出:
{1:100, 2:90, 3:5, 5:67, 8:3}
如上所示,我们可以看到按其键的顺序对字典进行了排序。
示例
dic={2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2={}
for i in sorted(dic):
dic2[i]=dic[i]
print(dic2)
输出
{1: 100, 2: 90, 3: 5, 5: 67, 8: 3}
逐行说明代码
- 声明要排序的字典
-
声明一个空字典,用于添加排序后的键值对
-
sorted(dic)包含dic所有升序的键序列。它只包含键而不是键值对。 sorted(dic)将包含[1,2,3,5,8]
-
对于排序后的每个键,将键和对应的值添加到dic2中。
-
dic2中包含按键排序的所有键值对
方法2 − 按值对字典进行排序
在此方法中,字典按值的升序排序。
输入:
{2:90, 1: 100, 8: 3, 5: 67, 3: 5}
**输出: **
{8:3, 3:5 ,5:67 , 2:90, 1:100}
如上所示,我们可以看到按其值对字典排序。
-
我们使用sorted()和items()方法将字典按值排序。
-
items()用于检索字典的项或值。
-
key=lambda x: x [1]是使用lambda函数的排序机制。
-
这给出了键值对,然后使用dict()将其转换为字典。
示例
dic={2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2=dict(sorted(dic.items(),key= lambda x:x[1]))
print(dic2)
输出
{8: 3, 3: 5, 5: 67, 2: 90, 1: 100}
极客教程