我有这样的字典:
{'0003': ['Mike', 'Restrepo', 'mtrepot', '87654321'], '0001': ['John', 'Jelenski', 'jelensohn', 'snf23jn4'], '0002': ['Clyde', 'Owen', 'clonew', 'dummy2015']}
我需要在值列表中搜索一个字符串,让我们说'mtrepot'并返回与之关联的密钥'0003'。有没有办法在没有列表或元组的情况下做到这一点?
答案 0 :(得分:1)
您可以使用list comprehensions
>>> d = {'0003': ['Mike', 'Restrepo', 'mtrepot', '87654321'], '0001': ['John', 'Jelenski', 'jelensohn', 'snf23jn4'], '0002': ['Clyde', 'Owen', 'clonew', 'dummy2015']}
>>> [k for k, v in d.items() if 'mtrepot' in v]
['0003']
答案 1 :(得分:1)
有很多方法可以做到这一点。一个由@ user3100115提供。另一种方法是使用生成器函数,例如:
d = {'0003': ['Mike', 'Restrepo', 'mtrepot', '87654321'], '0001': ['John', 'Jelenski', 'jelensohn', 'snf23jn4'], '0002': ['Clyde', 'Owen', 'clonew', 'dummy2015']}
def key_find(in_dict, value):
for k in in_dict:
if value in in_dict[k]:
yield k
for key in key_find(d, 'mtrepot'):
print(key)
#which prints: 0003