一个简单的问题,您如何发现嵌套列表中的所有元素都等于0或特定值我的代码是这样的
a = [[0,0,0],[0,0,0]]
def checkall(a):
zeros = 0
for i in a:
for b in i:
if b==0:
zeros+=1
else:
break
还有其他更好的方法吗?无需导入任何库
如果所有元素均为0(或False),则以下表达式返回True
,否则返回False
not any(any(x) for x in a)
您可以遍历a
的所有子列表,并检查0的计数是否等于子列表的长度,这意味着它仅包含0,然后检查所有结果值是否均为True
:
a = [[0,0,0],[0,0,0]]
def checkall(a):
return all(el.count(0) == len(el) for el in a)
此结果导致
>>> checkall(a)
True
您可以使用列表理解:
b = [True if d==0 else False for i in a for d in i]
all(b)
第一行创建一个布尔值列表(如果元素为零则为True,否则为False)。然后第二行检查所有列表是否都包含True值。
您可以尝试以下方法:
def checkNested(ls,n):
total = 0
for i in ls:
total += i.count(n)
return total
ln
是列表(必须具有嵌套列表),而n
是您要检查的数字。它返回在嵌套列表中找到的总数n。 checkNested([[0,0,0],[0,0,0]])
返回6。