好的,所以我正在制作一个程序,从数组/列表中取出数字3的每个瞬间。
您可以在下面看到数组索引数量不均匀的示例。
<p class="text"><a href="Source link" target="_blank">Source Keyword</a><a href="Our Site Link" target=_blank"></a></p>
它应该打印出[1,2]但它会崩溃。
答案 0 :(得分:1)
添加如下的打印语句:
def remove(b,o):
while o!= []:
print(o)
if b == o[0]:
s = [o[1]] + remove(b,o[2:])
return s
else:
ss = [o[0]] + remove(b,o[1:])
return ss
if o==[]:
return o
快速找到问题。
[1, 2, 3]
[2, 3]
[3]
当它到达3时,o
中只有一个元素,因此o[1]
会引发IndexError
。此外,它甚至不应该将o[1]
直接添加到列表中,因为它可能是3。
此外,没有必要使用循环或第二个if语句,因为它无论如何都不会运行多次。除了添加列表之外,还有更快的方法。
总而言之,这是一个旨在保持现有算法完整的解决方案(当然有更好,更有效的方法):
def remove(b,o):
if o == []:
return []
s = remove(b, o[1:])
if b != o[0]:
s.insert(0, o[0])
return s
答案 1 :(得分:-1)
试试这个。 x = filter(lambda a: a != 3, o)
当列表中的元素为奇数时,您可以省去编写崩溃的功能。