Python字典按照值(value)的大小进行排序可以使用collections的Counter()函数和sorted函数两种方式进行,关于Counter和sorted函数之前也记录过,关于这两个详细的就不说了,有需要可以自己看看:
python Counter()函数介绍 – 统计值出现的次数
https://www.linfengnet.com/python/1328.html
Python3 sorted() 函数 – 对所有可迭代的对象进行排序操作。
https://www.linfengnet.com/python/1313.html
下面我们直接看使用它们对Python字典按照值(value)的大小进行排序的示例代码:
sorted函数实现
test_dict = {'xm': 99, 'xh': 100, 'xw': 80}
# sorted() 函数可以对列表[]进行从小到大排序,对于字典{}dict,sorted函数默认只按照dict的key进行排序,如果是对字典的value进行排序的话,要对dict进行调整变形才可。
# 利用zip函数把dict转换成一个列表,列表中每个元素都是一个tuple,tuple大小比较原理是,先比较第一个元素,第一个相同在比较第二个。
z = zip(test_dict.values(), test_dict.keys())
# sorted函数默认为升序,设置参数reverse = True 降序
print(sorted(z, reverse=True))
输出结果
[(100, 'xh'), (99, 'xm'), (80, 'xw')]
至于上面的列表怎么转字典,就很简单了,我就不重复啰嗦了,如果不会就该去补补基础了。
sorted函数可以进行指定元素排序。
array = [{"age":20,"name":"a"},{"age":25,"name":"b"},{"age":10,"name":"c"}]
array = sorted(array,key=lambda x:x["age"])
print(array)
输出结果
[{'age': 10, 'name': 'c'}, {'age': 20, 'name': 'a'}, {'age': 25, 'name': 'b'}]
Counter()函数实现
Counter()函数返回值可以理解为一个字典,所以对传回来的统计结果的操作都可以当作对字典的操作(Counter类继承dict类,所以它能使用dict类里面的方法)
from collections import Counter
test_dict = {'xm': 99, 'xh': 100, 'xw': 80}
new_dict = Counter(test_dict)
print(new_dict)
输出结果
Counter({'xh': 100, 'xm': 99, 'xw': 80})
使用Counter(dict).most_common()则返回一个列表,列表中的元素由元组组成(字典的key,value),按照字典value从大到小排序。
from collections import Counter
test_dict = {'xm': 99, 'xh': 100, 'xw': 80}
# new_dict = Counter(test_dict)
# print(new_dict)
new_dict = Counter(test_dict).most_common()
print(new_dict)
输出结果
[('xh', 100), ('xm', 99), ('xw', 80)]
以上就是“Python字典按照值(value)的大小进行排序方法!”的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/11930/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取