簡體   English   中英

使用 all() 比較字典中的值的多行 if 語句

[英]Multi-line if statement using all() to compare values in dictionaries

我有列表列表和許多詞典。 為簡短起見,我將僅包含其中兩個數據有限的內容:

twins = [['John','Mark'],['David', 'Mike']]
gender = {'John': 'male','Mark': 'male','David': 'male','Mike':'male'}
age = {'John': 2,'Mark': 2,'David': 2,'Mike':2}

我使用以下代碼查找具有相同性別和年齡的雙胞胎:

for t in twins:
    if all(gender.get(t[0])==gender.get(t[1]) for t in twins)
        and all(age.get(t[0])==age.get(t[1]) for t in twins):
        print(t)

這在本例中工作正常,但似乎沒有在非常大的雙胞胎列表中找到所有匹配項。 這是正確的方法嗎? 如何以不同的方式在字典中查找特定值?

你可以試試這個:

twins = [['John','Mark'],['David', 'Joanna']]
gender = {'John': 'male','Mark': 'male','David': 'male','Mike':'male', 'Joanna':"female"}
age = {'John': 2,'Mark': 2,'David': 2,'Joanna':2}
final_twins = [[name1, name2] for name1, name2 in twins if gender[name1] == gender[name2] and age[name1] == age[name2]]

輸出:

[['John', 'Mark']]

暫無
暫無

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

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