[英]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.