Python检查嵌套列表中的所有项目是否都相同

问题描述 投票:0回答:4

一个简单的问题,您如何发现嵌套列表中的所有元素都等于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

还有其他更好的方法吗?无需导入任何库

python python-3.x nested-lists
4个回答
0
投票

如果所有元素均为0(或False),则以下表达式返回True,否则返回False

not any(any(x) for x in a)

0
投票

您可以遍历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

0
投票

您可以使用列表理解:

b = [True if d==0 else False for i in a for d in i]
all(b)

第一行创建一个布尔值列表(如果元素为零则为True,否则为False)。然后第二行检查所有列表是否都包含True值。


0
投票

您可以尝试以下方法:

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。

© www.soinside.com 2019 - 2024. All rights reserved.