从字典列表中提取一个字典 (Python)

Extracting one dictionary from a list of dictionaries (Python)

我有一个这样的字典列表:

[{'name': 'kabuto', 'id': 140},
 {'name': 'articuno', 'id': 144},
 {'name': 'nidorino', 'id': 33}]

我想问我的用户...

input('Which pokemon do you choose? ')

...然后 return/print 用户输入和名称匹配的字典。

例如,如果输入是'kabuto',那么这是returned/printed:

'name': 'kabuto', 'id': 140

这是possible/what最好的方法吗?

您可以使用 for 循环:

for item in data:
    if item['name'] == 'kabuto':
        print(item)
        break

这输出:

{'name': 'kabuto', 'id': 140}

可以使用这种方式使用过滤器:

pokemons = [{'name': 'kabuto', 'id': 140},
            {'name': 'articuno', 'id': 144},
            {'name': 'nidorino', 'id': 33}]

pokemon = list(filter(lambda p : p['name'] == "kabuto", pokemons))[0]

print(pokemon)