怎么给一个字典进行按值或key来排序?

字典是具有指定数字或键的特定数据集或组。在 Python 以外的编程语言中,它们也被称为哈希映射或关联数组。

一般来说,它是键值对的形式,就像现实世界的字典一样。

要创建字典,请从左括号开始,添加键并键入一个冒号。之后,输入对应的值。对于多个键值对,用逗号分隔它们。

日常工作中,对一个字典,有时候我们需要进行按值或字典的key进行排序,所以接下来就说几个常用方法:

1) 使用 Sorted()对字典的值进行排序

要根据值对列表进行排序,只需在命令部分键入 sorted(MarksDict.values()) 并按 Enter,例如:

markDict = {'USA': '328_200_000', 'France': '67_000_000', 'China': '1_393_000_000'}sorted(MarksDict.values()) # output['1_393_000_000', '328_200_000', '67_000_000']

当然,如果你希望值是按倒序进行排列的,需要加参数:

reverse=True

加上这个参数后输出就是按倒序了:

markDict = {'USA': '328_200_000', 'France': '67_000_000', 'China': '1_393_000_000'}sorted(MarksDict.values(), reverse=True) # output['67_000_000', '328_200_000', '1_393_000_000']



2) 在 Sorted() 中使用 Lambda 列表表达式功能

升序

在这种方法中,我们将在 lambda 函数的输入下使用“字典”表达式。使用原始字典,我们将在一行中对值进行排序。

所以,首先,输入打印语句,然后添加键值对。之后,输入“for”循环,它将迭代字典中的各个项目并插入排序函数。

markDict = {'USA': '328_200_000', 'France': '67_000_000', 'China': '1_393_000_000'}print({k:v for k,v in sorted(markDict.items(), key=lambda item: item[1])})#output{'China': '1_393_000_000', 'USA': '328_200_000', 'France': '67_000_000'}

请注意,在 sort 函数内部,有一个 lambda 函数。项值为 1 的 key 参数的这表示我们要根据值对字典进行排序。如果不要以字典的key来排序,那么应该将其更改为 0。

降序

如果要以降序格式对字典进行分类,只需使用 reverse 语句并将其 Value 变为 True 即可。

ct = {'USA': '328_200_000', 'France': '67_000_000', 'China': '1_393_000_000'}print({k:v for k,v in sorted(markDict.items(), key=lambda item: item[1], reverse=True)})#output{'France': '67_000_000', 'USA': '328_200_000', 'China': '1_393_000_000'}

通过这种方法就可以灵活的实现字典的排序了。

在这里给大家分享一些免费的课程供大家学习,扫描最下方的二维码就能全部领取,好啦今天的分享就到这里结束了,快乐的时光总是短暂呢,想学习更多课程的小伙伴不要着急,有更多惊喜哦~!


  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值