无论嵌套多深,我都必须从列表中删除空列表
例子 a = [2, 3, [[[[[]]]]], [[4, []]] , 5, 6, [], [], []]
想要的答案
b = [2, 3, [[4]] , 5, 6 ]
到目前为止我有
def delete_empty_list(x):
b = [x for x in a if x != []]
return(b)
这给了我
b = [2, 3, [[[[[]]]]], [[4, []]], 5, 6]
我不知道如何在列表中的嵌套项中循环。此外,项目可以嵌套,但我的功能应该仍然有效。
您可以使用递归:
def remove(lst):
result = []
for e in lst:
if isinstance(e, list):
l = remove(e)
if l:
result.append(l)
else:
result.append(e)
return result
a = [2, 3, [[[[[]]]]], [[4, []]], 5, 6, [], [], []]
print(remove(a))
输出
[2, 3, [[4]], 5, 6]
这个想法是检查元素是否是一个列表,如果结果不为空,则在该元素上递归调用 remove 。在普通元素(不是列表)的情况下,只需添加它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句