在Python字典中如何聚合布尔值?

7 投票
1 回答
3087 浏览
提问于 2025-04-15 22:34

对于下面这个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 版本那样在内存中生成一个列表。

撰写回答