从python中的列表中删除第一个出现的零

Wat*_*rap 3 python-3.x

我想删除最初从列表中出现的零列表,但它通过我尝试的方法表现得很奇怪.

a = [0,0,0,0,0,0,0,0,3,4,0,6,0,14,16,18,0]

for i in a:
    if i == 0: a.remove(i)
    else: pass

print (a)

>>> [0, 3, 4, 0, 6, 0, 14, 16, 18, 0]
Run Code Online (Sandbox Code Playgroud)

但是我需要像这样的OUTPUT

[3,4,0,6,0,14,16,18,0]

并且还假设列表增长或减少,所以我不能保持零的范围并删除它们.我哪里错了.

cri*_*007 5

你的循环跳过项目.你删除一个,然后迭代到下一个位置.

只需找到第一个非零的位置并修剪列表

a = [0,0,0,0,0,0,0,0,3,4,0,6,0,14,16,18,0]

i = 0
while a[i] == 0:
  i+=1

print(a[i:])  # [3, 4, 0, 6, 0, 14, 16, 18, 0]
Run Code Online (Sandbox Code Playgroud)