簡體   English   中英

返回包含兩個特定值的字典鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM