Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从字典中获取值及其键_Python_Dictionary_Methods - Fatal编程技术网

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

Python 如何从字典中获取值及其键,python,dictionary,methods,Python,Dictionary,Methods,我有一本这样的字典: {'0003': ['Mike', 'Restrepo', 'mtrepot', '87654321'], '0001': ['John', 'Jelenski', 'jelensohn', 'snf23jn4'], '0002': ['Clyde', 'Owen', 'clonew', 'dummy2015']} 我需要在一个值列表中搜索一个字符串,比如说“mtrepot”,然后返回与之相关联的键“0003”。有没有一种不用列表或元组的方法呢?您可以使用 有很多方法可以

我有一本这样的字典:

{'0003': ['Mike', 'Restrepo', 'mtrepot', '87654321'], '0001': ['John', 'Jelenski', 'jelensohn', 'snf23jn4'], '0002': ['Clyde', 'Owen', 'clonew', 'dummy2015']}
我需要在一个值列表中搜索一个字符串,比如说“mtrepot”,然后返回与之相关联的键“0003”。有没有一种不用列表或元组的方法呢?

您可以使用


有很多方法可以做到这一点。一个由@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

你是什么意思?有没有一种没有列表的方法?你的意思是有没有办法创建没有列表的词典?items是一个元组列表,那么这是否符合问题既不使用列表也不使用元组的要求?@ChrisMartin OP应该这样做。问题是,有没有一种方法可以不使用列表或元组?在python3中,.items返回的是视图而不是列表。无论哪种方法,答案都使用列表理解,因此我们使用列表来完成此操作。@ChrisMartin有时候,最好的帮助方法不是给OP他们想要什么,而是给OP他们需要什么:-
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