我今天遇到一个非常简单的问题。我有一本字典,其中的键包含一个元素列表。我知道如何在包含一个特定值的情况下返回键,但是如果我一起寻找两个特定值怎么办?
让我们假设我有一个叫my_dict的字典,其中包含键(0到10)和每个键的单词列表。
例如:
my_dict = {
0 : ['bear', 'tiger', 'lion'],
1: ['cheetah', 'tiger', 'snake'],
2: ['bear', 'tiger', 'elephant'],
# and so on...
}
我想退回我有熊和老虎这两个词的键:)
提前谢谢
答案 0 :(得分:0)
您可以迭代并进行简单的检查
>>> 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]
答案 1 :(得分:0)
尝试一下
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]
答案 2 :(得分:0)
使用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')