如何从字典中获取值及其键

时间:2015-07-28 04:18:04

标签: python dictionary methods

我有这样的字典:

{'0003': ['Mike', 'Restrepo', 'mtrepot', '87654321'], '0001': ['John', 'Jelenski', 'jelensohn', 'snf23jn4'], '0002': ['Clyde', 'Owen', 'clonew', 'dummy2015']}

我需要在值列表中搜索一个字符串,让我们说'mtrepot'并返回与之关联的密钥'0003'。有没有办法在没有列表或元组的情况下做到这一点?

2 个答案:

答案 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