if all([0, 4, "Sample string"]):
print "Yes"
else:
print "No"
尽管迭代具有所有值,但它始终打印否。我无法理解是什么让它评价为假。
答案 0 :(得分:6)
all()
返回true,请参阅function documentation:
如果iterable的所有元素都为true(或者iterable为空),则返回
True
。
0
不是真正的价值:
>>> bool(0)
False
请参阅Python标准类型文档的Truth Value Testing section:
以下值被视为false:
[...]
- 任何数字类型的零,例如,0,0.0,0j。
答案 1 :(得分:1)
您的iterable包含0
,0的计算结果为False
。
答案 2 :(得分:1)
在Python中,整数0等于False。
答案 3 :(得分:-1)
检查数组是否包含布尔值" False"在任何地方(我猜 你原本打算这样做,只需:
if all(map(lambda v: v is not False, [0, 4, "Sample string"])):
print "Yes"
else:
print "No"