2024-09-29 21:47:50 发布
网友
初学者问题。你知道吗
我有一本这样的字典:
tadas = {'tadas':{'one':True,'two':2}, 'john':{'one':True,'two':True}}
我想计算key为“one”的真值。我应该如何修改我的代码?你知道吗
sum(x == True for y in tadas.values() for x in y.values() )
可以使用filter筛选“one”未映射为True的任何值的列表。然后,返回列表的长度。你知道吗
len(filter(lambda x: tadas[x]['one'], tadas))
仅访问一个属性:
sum(item['one'] for item in tadas.values())
这利用了这样一个事实:True等于1,False等于0。你知道吗
True
1
False
0
如果不是每个项都包含键'one',则应使用.get方法:
'one'
.get
sum(item.get('one', 0) for item in tadas.values())
.get如果dict不包含第一个参数,则返回第二个参数。你知道吗
如果'one'也可以指向数字,您应该明确地测试is True:
is True
sum(item.get('one', 0) is True for item in tadas.values())
如果不想在布尔值中隐藏求和,可以更明确地使用:
sum(1 if item.get('one', False) is True else 0 for item in tadas.values())
列表可以计算值的出现次数,因此使用它可能是最惯用的方法:
[x.get('one') for x in tadas.values()].count(True)
可以使用filter筛选“one”未映射为True的任何值的列表。然后,返回列表的长度。你知道吗
仅访问一个属性:
这利用了这样一个事实:
True
等于1
,False
等于0
。你知道吗如果不是每个项都包含键
'one'
,则应使用.get
方法:.get
如果dict不包含第一个参数,则返回第二个参数。你知道吗如果
'one'
也可以指向数字,您应该明确地测试is True
:如果不想在布尔值中隐藏求和,可以更明确地使用:
列表可以计算值的出现次数,因此使用它可能是最惯用的方法:
相关问题 更多 >
编程相关推荐