Skip to main content
 首页 » 编程设计

python之在字典中搜索值

2025年05月04日24bluestorm

想统计字典中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)