簡體   English   中英

如何檢查所有python列表值是否為0

[英]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!"

您可以在 ideone 上使用不同的值測試上述內容

倒置邏輯有時會勝出:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM