我想删除最初从列表中出现的零列表,但它通过我尝试的方法表现得很奇怪.
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]
并且还假设列表增长或减少,所以我不能保持零的范围并删除它们.我哪里错了.
你的循环跳过项目.你删除一个,然后迭代到下一个位置.
只需找到第一个非零的位置并修剪列表
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)
| 归档时间: |
|
| 查看次数: |
388 次 |
| 最近记录: |