Python列表列表中的所有项都为true

时间:2017-08-14 16:00:03

标签: python

制作了True& amp;这是假的,我想做的就是检查它们是否都是真的。之前成功使用了all(),但出于某种原因,下面我失败了。

data = [[False, False, False], 
[False, False, False], 
[True, True, True], 
[True, True, True]]

print(all(data))
>>> True

为什么会这样?

2 个答案:

答案 0 :(得分:5)

all不检查每个子列表中的bool。每个非空列表都是真实的。

要检查所有 所有子列表中的项目是True,您应该执行以下操作:

all(x for lst in data for x in lst) # -> False

答案 1 :(得分:1)

您可以使用生成器将每个子列表传递到all中的all函数:

print(all(all(i) for i in data))

输出:

False