[英]Return dictionary key containing two specific values
我今天带着一个相当简单的问题来。 我有一个包含元素列表的键的字典。 如果密钥包含一个特定值,我知道如何返回它,但是如果我要同时查找两个特定值,我该怎么做?
假设我有一个名为 my_dict 的字典,带有键(0 到 10)和每个键的单词列表。
前任:
my_dict = {
0 : ['bear', 'tiger', 'lion'],
1: ['cheetah', 'tiger', 'snake'],
2: ['bear', 'tiger', 'elephant'],
# and so on...
}
我想归还带有熊和老虎两个字的钥匙:)
先感谢您
你可以迭代并做一个简单的检查
>>> my_dict = {0 : ['bear', 'tiger', 'lion'], 1: ['cheetah', 'tiger', 'snake'], 2: ['bear', 'tiger', 'elephant']}
>>>
>>> [x for x,y in my_dict.items() if 'bear' in y and 'tiger' in y]
[0, 2]
尝试这个
my_dict = {0 : ['bear', 'tiger', 'lion'], 1: ['cheetah', 'tiger', 'snake'], 2: ['bear', 'tiger', 'elephant']}
keys = []
for k,v in my_dict.items():
if 'bear' in v and 'tiger' in v:
keys.append(k)
print(keys) # [0, 2]
使用 items 函数迭代字典,检查字典列表值中值 1 和值 2 是否存在,如果找到则返回键。 下面是示例代码,可以根据需要自定义:
my_dict = {101 : ['bear', 'tiger', 'lion'], 100: ['cheetah', 'tiger', 'snake'], 102: ['bear', 'tiger', 'elephant']}
def get_dict_key(val1,val2):
for k,v in my_dict.items():
if val1 in v:
if val2 in v:
return k
get_dict_key('cheetah','tiger')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.