擅长:python、mysql、java
<p>我会递归地这么做。这也适用于任意嵌套级别。在</p>
<pre><code>myarray = ['a', 'a', ['b', 'a', 'a'], ['a', 'c', 'd', 'a'], 'a', ['a', 'd']]
def nestremove(lst, what):
new = []
for item in lst:
if isinstance(item,list):
new.append(nestremove(item,what))
elif item != what:
new.append(item)
return new
print(myarray)
myarray = nestremove(myarray, 'a')
print(myarray)
</code></pre>
<p>该函数返回一个新列表,因此我们不必在迭代原始列表时从原始列表中删除项,正如其他人已经指出的那样,这可能是危险的(请参见<a href="https://stackoverflow.com/questions/6022764/python-removing-list-element-while-iterating-over-list">this</a>问题,尤其是注释)。相反,您可以重新分配<code>myarray</code>。在</p>
<p>输出:</p>
^{pr2}$