我有列表和许多词典。为了简短起见,我将仅包含其中两个数据:
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)
这个例子在这个例子中工作得很好,但似乎没有在一个非常大的双胞胎列表中找到所有匹配。 这是正确的方法吗?怎样才能在字典中找到具体的值呢?
答案 0 :(得分:1)
你可以试试这个:
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']]