如何检查所有python列表值是否为0

时间:2016-02-09 23:10:15

标签: python python-2.7

我希望我的程序检查我的二维列表是否已满0

usedGameboardPosition = [[0 for x in range(16)] for x in range(16)]

这是我稍后在程序中填写1

的声明

我试着用它来检查:

if all(v == 0 for v in usedGameboardPosition):
  start = 0

但似乎行不通。虽然列表已满0但它不会进入条件

编辑:好吧,好像我找到了答案谢谢你们!

if all(v == [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for v in usedGameboardPosition):
      start = 0

5 个答案:

答案 0 :(得分:3)

v中的每个usedGameboardPosition都是0的列表。为此,您需要检查该列表中的所有v

if all(v == 0 for l in usedGameboardPosition for v in l):
    start = 0

答案 1 :(得分:1)

你不能检查v == 0,因为v是0的列表。试试这个:

x = [[0 for x in range(16)] for x in range(16)]

print all(all(y == 0 for y in z) for z in x)

答案 2 :(得分:0)

您还需要遍历内部列表:

usedGameboardPosition = [[0 for x in range(16)] for x in range(16)]

if all(all(x == 0 for x in v)  for v in usedGameboardPosition):
    print "All zeroes!"

你可以test the above with different values on ideone

答案 3 :(得分:0)

如果您的游戏板除了零之外只包含正(或唯一负数)数值,您可以使用sum()

if not sum(sum(row) for row in usedGameboardPosition):
    # it added up to zero, so it was all zeroes

答案 4 :(得分:0)

倒置逻辑有时赢得胜利:

{{1}}