[英]Finding min() and max() of Python dictionary key-value pair complexes
[英]Finding a key value pair in a dictionary that contains a specific value in python
在python 3和python 2中,有没有办法在包含特定值的字典中获取键值对? 例如,这是字典:
dict_a = {'key_1': [23, 'ab', 'cd'], 'key_2': [12, 'aa', 'hg']}
我如何获取键值对,其中值中存在“ cd”? 我尝试使用itervalues(),但似乎不起作用
您可以使用简单的字典理解来检查cd
是否在每个键值对的值中:
>>> dict_a = {'key_1': [23, 'ab', 'cd'], 'key_2': [12, 'aa', 'hg']}
>>> {k: v for k, v in dict_a.items() if 'cd' in v}
{'key_1': [23, 'ab', 'cd']}
这可以通过将逻辑提取到函数中来概括:
>>> def filter_dict(d, key):
return {k: v for k, v in d.items() if key in v}
>>> dict_a = {'key_1': [23, 'ab', 'cd'], 'key_2': [12, 'aa', 'hg']}
>>> filter_dict(dict_a, 'cd')
{'key_1': [23, 'ab', 'cd']}
>>>
遍历dict
所有项目
dict_a = {'key_1': [23, 'ab', 'cd'], 'key_2': [12, 'aa', 'hg']}
for k, v in dict_a.iteritems():
if 'cd' in v:
print k, v
key_1 [23, 'ab', 'cd']
您可以简单地遍历字典项并检查您的值是否在值中,例如:
for k, v in dict_a.items(): # use iteritems() on Python 2.x
if "cd" in v:
print("key: {}, value: {}".format(k, v))
您可以编写自己的小方法来检查字典中的值。
dict_a = {'key_1': [23, 'ab', 'cd'], 'key_2': [12, 'aa', 'hg']}
def checkValue(dictionary, value):
for key, valueList in dict_a.items():
if value in valueList:
print("value(" + value + ") present in " + str(valueList) + " with key (" + key + ")")
break
checkValue(dict_a, 'cd')
样品运行
value(cd) present in [23, 'ab', 'cd'] with key (key_1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.