python字典如何根据key比较value?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python字典如何根据key比较value?相关的知识,希望对你有一定的参考价值。
dict1 = '1': '10', '5': '30', '9': '80'
dict2 = '3': '10', '7': '30', '11': '60'
如何循环遍历1和3,5和7,9和11的value比较?
或者大佬提供一个更好的方法
首先介绍sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数。
其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等,key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序(从大到小),reverse=false则是顺序(从小到大),默认是reverse=false。
2.按照key排序
要对字典按照key排序,可以直接调用sorted函数。
my_dict = 'lilee':25, 'age':24, 'phone':12
sorted(my_dict.keys())
输出结果为
['age', 'lilee', 'phone']
直接使用sorted(my_dict.keys())就能按key值对字典排序,这里是按照顺序对key值进行排序的,如果想按照倒序排序的话,只需要将reverse置为true即可。
sorted(my_dcit.keys(), reverse = true)
3.按照value值排序
共有三种方法可以实现将字典按照value值进行排序
(1)key使用lambda匿名函数取value进行排序
d = 'lilee':25, 'wangyan':21, 'liqun':32, 'age':19
sorted(d.items(), key=lambda item:item[1])
输出结果为
[('age',19),('wangyan',21),('lilee',25),('liqun',32)]
如果需要倒序则
sorted(d.items(), key=lambda item:item[1], reverse=True)
得到的结果就会是
[('liqun',32),('lilee',25),('wangyan',21),('age',19)](2)使用operator的itemgetter进行排序
import operator
sorted(d.items(), key=operator.itemgetter(1))
输出结果为
[('age',19),('wangyan',21),('lilee',25),('liqun',32)]
(3)将key和value分装成元组,再进行排序
f = zip(d.keys(), d.values())
c = sorted(f)
输出结果为
[('age',19),('wangyan',21),('lilee',25),('liqun',32)]
4.取出排序的前n个value值和key值
可以按照如下操作:
before = "key1": 5,"key2": 6,"key3": 4,"key4": 3,
# 排序after = dict(sorted(before.items(), key=lambda e: e[1]))print(after)
# 取出前几个, 也可以在sorted返回的list中取前几个
required_cnt = 2cnt = 0
for key, value in after.items():
cnt += 1if cnt > required_cnt:breakprint(":".format(key, value)) 参考技术A keyList1 = list(dict1.keys())
keyList2 = list(dict2.keys())
for i in range(3):
value1 = dict1[keyList1[i]]
value2 = dict2[keyList2[i]]
#用value1和value2去作比较本回答被提问者和网友采纳
Python 两个字典(dic)中相同key合并(value分别作合成后字典key和value)
本文主要介绍Python合并两个拥有相同key的字典,根据字典的key做关联,两个字典的value分别做合成后的字典的key和value,示例代码如下:
以上是关于python字典如何根据key比较value?的主要内容,如果未能解决你的问题,请参考以下文章
python字典如何根据value返回对应的keys?value值不唯一