簡體   English   中英

查找列表中的值是否存在於 python 的字典中

[英]Find if a value in a list exists in a dictionary in python

我有一個清單,就像

myList= ['France', 'Brazil', 'Armenia']

和一本像

countryDict = {'Argentina':10, 'Spain':23, 'France':66, 'Portugal:10', 'Brazil':120, 'Armenia':99}

如果它與列表匹配,我如何打印字典中鍵的名稱,並用它打印值?

我試過了

for name in countries_avg_dict:
        if name in country_List:
            print(countries_avg_dict[name])

但是這不起作用,有什么幫助嗎?

我收到一個錯誤

 DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.

您需要遍歷myList並檢查其中的國家/地區是否在countryDict中:

for country in myList:
    if country in countryDict:
        print(country, countryDict[country])

Output:

France 66
Brazil 120
Armenia 99

您不需要執行嵌套循環來查找它們是否在字典中,只需使用bool()運算符來查找元素是否存在,您可以在 try-except 中執行此操作以捕獲 KeyError 以防萬一該元素在字典中不存在

使用每個循環:

myList= ['France', 'Brazil', 'Armenia', 'FakeCountry']
countryDict = {'Argentina':10, 'Spain':23, 'France':66, 'Portugal':10, 'Brazil':120, 'Armenia':99}

for item in myList:
    try:
        print(item, bool(countryDict[item]))
    except KeyError:
        print(item, False)

使用索引:

myList= ['France', 'Brazil', 'Armenia', 'FakeCountry']
countryDict = {'Argentina':10, 'Spain':23, 'France':66, 'Portugal':10, 'Brazil':120, 'Armenia':99}

for i in range(len(myList)):
    try:
        print(myList[i], bool(countryDict[myList[i]]))
    except KeyError:
        print(myList[i], False)

我相信這可能會有所幫助:

>>> for k,v in countryDict.items():
...   if k in myList:
...     print(f"{k}: {v}")
... 
France: 66
Brazil: 120
Armenia: 99

請讓我知道這是否適合您。 ~X

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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