Python 从列表中删除元素
在循环中弹出upp时,如何删除值为0的元素Python 从列表中删除元素,python,Python,在循环中弹出upp时,如何删除值为0的元素 y = [4, 2, 7, 9] x = input("run?") while x: for i in range(len(y)): y[i] -= 1 y.append(len(y)) print(y) 您可以始终使用列表理解来筛选它们: for i in range(len(y)): y[i] -= 1 y = [x for x in y if x != 0] # <-- added he
y = [4, 2, 7, 9]
x = input("run?")
while x:
for i in range(len(y)):
y[i] -= 1
y.append(len(y))
print(y)
您可以始终使用列表理解来筛选它们:
for i in range(len(y)):
y[i] -= 1
y = [x for x in y if x != 0] # <-- added here
y.append(len(y))
范围内的i(len(y)):
y[i]=1
y=[x代表x,如果x!=0]#而如果x
的计算结果为True
则x
将使您进入无限循环。注意-过滤器+lambda通常被认为比列表理解慢;你可能会对它感兴趣。
while whatever: #<-- fix as suggested by comment on your question
y = [z-1 for z in y if z > 1]
y.append(len(y))
y = filter(lambda i: i != 0, y)