我正在尝试在字典中的某个位置找到具有特定值的键。我的字典看起来像这样。
>dict
>{'1': ['4166908', '4166673'],
'2': ['4166835', '4167465', '4169369'],
'3': ['4169108', '4169208', '4170285'],
'4': ['4170065']}
这是我想要做的一个例子。
返回位置1中值为“4169208”且值为“4170285”的键。 返回的密钥应为“3”。像这样,
M = '4169208' N = '4170285'
for key, value in mydict.iteritems():
if value[1] == m and value[2] == n:
print key
如果我可以使用'itervalues()'或类似的函数来做这件事会很棒。
答案 0 :(得分:1)
基于严格纠正您的代码,您需要做的唯一修改是首先检查以确保您检查的列表长度为>=
2.然后您可以检查查看位置的条件1和2。
d = {'1': ['4166908', '4166673'],
'2': ['4166835', '4167465', '4169369'],
'3': ['4169108', '4169208', '4170285'],
'4': ['4170065']}
for i, v in d.iteritems():
if len(v) >= 2 and v[1] == '4169208' and v[2] == '4170285':
print(i)
答案 1 :(得分:0)
python3.5
mydict = {'1': ['4166908', '4166673'],
... '2': ['4166835', '4167465', '4169369'],
... '3': ['4169108', '4169208', '4170285'],
... '4': ['4170065']}
>>> mydict
{'1': ['4166908', '4166673'], '4': ['4170065'], '2': ['4166835', '4167465', '4169369'], '3': ['4169108', '4169208', '4170285']}
>>> for key, value in mydict.items():
... if all(v in value for v in [ '4169208', '4170285']):
... print(key)
...
3
答案 2 :(得分:0)
dictionary = {'1': ['4166908', '4166673'],
'2': ['4166835', '4167465', '4169369'],
'3': ['4169108', '4169208', '4170285'],
'4': ['4170065']}
def get_key_by_value(dictionary, check_values_list):
for key, value in dictionary.items():
if all(item in value for item in check_values_list):
yield key
print list(get_key_by_value(dictionary, ['4169208', '4170285']))
答案 3 :(得分:0)
d = {'1': ['4166908', '4166673'], '2': ['4166835', '4167465', '4169369'],
'3': ['4169108', '4169208', '4170285'], '4': ['4170065']}
for i, v in d.items():
if '4169208' in v or '4170285' in v:
print i