如何在Python中排序字典?


字典是一种由键值对组成的数据结构。我们可以根据两种标准对字典进行排序:

按键排序 - 字典按其键的升序排序。值不被考虑。

按值排序 - 字典按其值的升序排序。

方法一:按键排序字典

这种方法将字典按其键的升序排序。

输入

{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: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}

更新于:2021年3月11日

5K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告