我只需要一个从输入列表中删除零的函数
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]))
Run Code Online (Sandbox Code Playgroud)
我应该得到1,2,3的输出,但是它会跳过正确的返回a。关于为什么的任何指示?干杯。
您可以使用列表推导:
def no_zero(a):
return [x for x in a if x != 0]
print(no_zero([0,1,0,2,0,3]))
Run Code Online (Sandbox Code Playgroud)
此外,您的代码当前无法正常运行的原因是,您正在将项目与字符串("0")而不是整数(0)进行比较。您还尝试在迭代列表时修改列表,这意味着您的索引与列表的原始索引不对应,并且结果将是错误的。
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |