[英]how to check if all python list values are 0
我想讓我的程序檢查我的二維列表是否全是 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
usedGameboardPosition
中列表中的每個元素v
都是一個0
的列表。 為此,您需要迭代這些內部列表並檢查其中包含的元素(此處示例中的x
)是否等於 0。
if all(x == 0 for v in usedGameboardPosition for x in v):
start = 0
你不能檢查 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)
如果您的游戲板除了零之外僅包含正(或僅負)數值,您可以使用sum()
。
if not sum(sum(row) for row in usedGameboardPosition):
# it added up to zero, so it was all zeroes
您還需要遍歷內部列表:
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!"
倒置邏輯有時會勝出:
if all(not any(row) for row in usedGameboardPosition):
start = 0
我沒有在這里找到解決方案,但我發現這對我有用
all(x == 0 for x in list(usedGameboardPosition))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.