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