说我有一个像
这样的清单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'
是否有一些搜索我缺少的嵌套循环的方法?
答案 0 :(得分:3)
你return
来自函数,这实际上意味着你不评估每个元素。
除此之外,for inner_2 in inner[3]:
将无法执行您想要的操作,因为它不会为空列表执行(它没有要迭代的元素!)。您可以做的是浏览每个列表并yield
inner[3]
的真相:
def myfunc(cata):
for inner in cata:
yield bool(inner[3])
yield
将使该函数成为可以迭代并返回结果的生成器:
for i in myfunc(cata):
print(i)
打印:
True
False
当然,这很容易转换为存储结果的列表理解:
r = [bool(x[3]) for x in cata]
现在持有r
:
[True, False]