想统计字典中20岁以上男性的数量。
我有以下字典
i={'joe':("male",25), 'fred':("male",39), 'susan':("female",20)}
例如,我知道如何在字典中搜索关键字
print ('joe' in i)
返回真但是
print ('male' in i.values())
print ('male in i)
两者都返回 false。我怎样才能让它返回 true 最终我想统计字典中超过一定年龄的男性人数
请您参考如下方法:
i={'joe':("male",25), 'fred':("male",39), 'susan':("female",20)}
'joe' in i
equals
'joe' in i.keys()
where i.keys() == ['joe', 'fred', 'susan']
现在,
i.values()
[('female', 20), ('male', 25), ('male', 39)]
在这里,例如 ('female', 20) 中的每个元素都是一个元组,您正试图将它与一个字符串进行比较,结果为 false。
So when you do
print ('male' in i.values()) -> returns false
print ('male in i) -> 'male' not in i.keys()
解决方法如下:
sum(x=='male' and y > 20 for x, y in i.values())
or
count = 0
for x, y in i.values():
if x == 'male' and y > 20:
count += 1
print(count)
