在Python字典中如何聚合布尔值?
对于下面这个Python字典:
dict = {
'stackoverflow': True,
'superuser': False,
'serverfault': False,
'meta': True,
}
我想把上面的布尔值(也就是真和假)合并成一个布尔表达式:
dict['stackoverflow'] and dict['superuser'] and dict['serverfault'] and dict['meta']
这个表达式的结果应该是False
。我使用了已知名称的键,但我希望这个方法能适用于很多未知名称的键。
1 个回答
23
在 Python 2.5 及以上版本中:
all(dict.itervalues())
在 Python 3 及以上版本中:
all(dict.values())
不过,dict
这个变量名不太好,因为它是一个内置类型的名字。
补充说明:添加了 Python 3 版本的语法。values()
在 Python 3 中创建的是一个视图,而不是像 2.x 版本那样在内存中生成一个列表。