我是平台的新手,我正在尝试为python中使用复杂列表的程序创建一个有用的函数,(更精确的单词列表列表)。 整个问题是没有值可以在这个“4比例列表”的每个级别。
但是,我试过这个:
def WipeOutNone(List):
for i in range(len(List)):
if List[i]==None:
del List[i]
else:
if len(List[i])>1:
WipeOutNone(List[i])
return List
但它不起作用。
你知道如何修复它,或者只是找另一种方法来做它吗?
欢迎任何答案:)
答案 0 :(得分:0)
有一个关于你的用例的例子很好,
但如果我理解正确,请考虑一个简单的2嵌套列表,其中None
出现在父级别或子级别
在这种情况下,您可以使用递归
删除NoneIn [83]: a = [1,2,3,None]
In [84]: b = [a, None, a]
In [85]: def rem_none(l):
...: if type(l) != list:
...: return
...: l[:] = [i for i in l if i is not None]
...: for e in l:
...: rem_none(e)
...:
In [86]: rem_none(b)
In [87]: b
Out[87]: [[1, 2, 3], [1, 2, 3]]
这是一种超级简单的方法,您可以使用filter
执行更强大的功能