我希望我的程序检查我的二维列表是否已满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
答案 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!"
答案 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}}