回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>所以对于deepremove,可以给你一个链表和一个值。如果在该列表中找到一个值,则删除并继续,直到删除与参数值匹配的所有值。虽然我的程序一找到匹配就停止了</p>
<p>应该发生什么的例子</p>
<pre><code>removedeep(3, [1, 2, 3, 4]) --> [1, 2, 4]
removedeep(3, [1, [2, 3], 4]) --> [1, [2], 4]
removedeep(3, [1, 2, 4]) --> [1, 2, 4]
removedeep(3, --> [1, [2], 4]
def removedeep(x, L):
'''test if x occurs within the nested list L.
E.g., removedeep(3, [1, 2, 3, 4]) --> [1, 2, 4]
removedeep(3, [1, [2, 3], 4]) --> [1, [2], 4]
removedeep(3, [1, 2, 4]) --> [1, 2, 4]
removedeep(3, --> [1, [2], 4]'''
if not L:
return []
elif type(L[0]) == type(x):
if(L[0] == x):
return removedeep(x, L[1:])
else:
return [L[0]] + removedeep(x, L[1:])
else:
return removedeep(x, L[0])
print(removedeep(4,[1,2,[4],3,5,6]))
</code></pre>
<p>虽然我的输出是<code>[1,2]</code>而不是<code>[1,2,3,5,6]</code></p>