如果值为list,则按值获取字典键

sib*_*ert 0 python dictionary list

所以这与之前发布的较短问题有关:在字典中按值获取密钥

我修改了值为lists 的示例int.说我有这个,

mydict = {'george':[1,2,3],'amber':[18,19]}
Run Code Online (Sandbox Code Playgroud)

然后我可以输出"amber":

print(list(mydict.keys())[list(mydict.values()).index([18,19])])
Run Code Online (Sandbox Code Playgroud)

有没有办法调整这个,所以我可以"amber"通过"询问"列表中的一个项目输出?ieeg 19

简介:我想问我的字典:"给我一个有价值的密钥(列表)项目"19"

Bha*_*Rao 8

使用带有条件的列表推导

>>> mydict = {'george':[1,2,3],'amber':[18,19]}
>>> [i for i in mydict if 19 in mydict[i]]
['amber']
Run Code Online (Sandbox Code Playgroud)

在这里,您将获得列表中包含项目19的所有键的列表.

如果您只想要第一个可以使用的元素 [i for i in mydict if 19 in mydict[i]][0]

另一种创新方式是使用 filter

>>> filter(lambda x: 19 in x[1], mydict.items())
[('amber', [18, 19])]
Run Code Online (Sandbox Code Playgroud)

请注意,在这里您可以获得密钥和值.