我只需要一个从输入列表中删除零的函数
def no_zero(a):
pos=0
while (pos+1)<=len(a):
if a[pos] == "0":
a.remove[pos]
pos= pos +1
return a
print(no_zero([0,1,0,2,0,3]))
我应该得到1,2,3的输出,但它跳过正确返回a。任何指针为什么?欢呼声。
答案 0 :(得分:5)
您可以使用list comprehension:
def no_zero(a):
return [x for x in a if x != 0]
print(no_zero([0,1,0,2,0,3]))
此外,您的代码当前不起作用的原因是您将项目与字符串("0"
)而不是整数(0
)进行比较。您还尝试在迭代时修改列表,这意味着您的索引不对应于列表的原始索引,并且您的结果将是错误的。