繁体   English   中英

如何在Python中检查一个空的嵌套列表?

[英]How do I check for an empty nested list in Python?

说我有一个类似的清单

cata = [["Shelf", 12, "furniture", [1,1]],
        ["Carpet", 50, "furnishing", []]]

我想在每个嵌套列表中查找是否为空。

我知道使用for循环遍历列表和if语句来验证我是否在函数中

def myfunc(cata):
    for inner in cata:
        for inner_2 in inner[3]:
            if inner_2:
                return "True"
            else:
                return "False"

但是,而不是返回:

'True'
'False'

我得到的是:

'False'

有没有一些我找不到的嵌套循环的搜索方法?

您从函数return ,这实际上意味着您不会评估每个元素。

除了for inner_2 in inner[3]:之外for inner_2 in inner[3]:不会做您想要的事情,因为它不会为空列表执行( 它没有要迭代的元素! )。 您可以做的是遍历每个列表,并yield inner[3]的真实感:

def myfunc(cata):
    for inner in cata:
        yield bool(inner[3])

yield ing将使函数成为可以迭代的生成器并返回结果:

for i in myfunc(cata):
    print(i)

印刷品:

True
False

当然,可以很容易地将其转换为存储结果的列表理解:

r = [bool(x[3]) for x in cata]

随着r持有:

[True, False]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM