Python。如何从 Python 中的列表中删除零

And*_*ews 7 python

X = [0,5,0,0,3,1,15,0,12]

for value in range(0,len(X)):

    if X[value] <= 0:
        del X[value]
        print(X)
print(X)
Run Code Online (Sandbox Code Playgroud)

我运行了代码,但是我收到一条错误消息,指出列表超出了索引范围。有人可以帮我解决这个错误吗

Jah*_*ows 22

尝试列表理解。

X = [0,5,0,0,3,1,15,0,12]
X = [i for i in X if i != 0]
Run Code Online (Sandbox Code Playgroud)


prm*_*rms 5

>>> X = [0,5,0,0,3,1,15,0,12]
>>> list(filter(lambda num: num != 0, X))
[5, 3, 1, 15, 12]
Run Code Online (Sandbox Code Playgroud)