Return 包含两个特定值的字典键

Return dictionary key containing two specific values

今天我带着一个相当简单的问题来了。我有一本字典,其中的键包含一个元素列表。如果密钥包含一个特定值,我知道如何 return 但如果我同时查找两个特定值,我该怎么做?

假设我有一个名为 my_dict 的字典,其中包含键(0 到 10)和每个键的单词列表。

例如:

my_dict = {
    0 : ['bear', 'tiger', 'lion'], 
    1: ['cheetah', 'tiger', 'snake'], 
    2: ['bear', 'tiger', 'elephant'], 
    # and so on...
}

我想 return 我把熊和老虎放在一起的键:)

提前致谢

您可以迭代并进行简单检查

>>> 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 函数迭代字典,如果找到 return 键,则检查字典列表值中值 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')