假设我有一个容器,例如字典或列表。测试容器的所有值是否等于给定值(例如 None
)的 Python 方法是什么?
我天真的实现只是使用一个 bool 标志,就像我在 C 中教我做的那样,所以代码看起来像。
a_dict = {
"k1" : None,
"k2" : None,
"k3" : None
}
carry_on = True
for value in a_dict.values():
if value is not None:
carry_on = False
break
if carry_on:
# action when all of the items are the same value
pass
else:
# action when at least one of the items is not the same as others
pass
虽然这种方法工作得很好,但考虑到 Python 处理其他常见模式的出色程度,它感觉并不正确。这样做的正确方法是什么?我想也许内置的
all()
函数会做我想做的事,但它只测试 bool 上下文中的值,我想与任意值进行比较。 最佳答案
如果添加 generator expression ,您仍然可以使用 all
:
if all(x is None for x in a_dict.values()):
或者,使用任意值:
if all(x == value for x in a_dict.values()):
关于python - 如何测试容器中所有物品的值(value)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26762081/