我有一些简单的代码:
a = [1,2,3,4,3,3,5]
for letter in a:
print (letter)
if letter == 3:
a.remove(letter)
print ('a=',a)
输出显示:
1
2
3
3
5
a= [1, 2, 4, 3, 5]
我希望看到:
1
2
3
4
3
3
5
a=[1,2,4,5]
发生了什么事?在循环中似乎“a”列表也同时更新。如何修复for循环以获得预期的输出?
答案 0 :(得分:-1)
它正在删除索引3处的项目,而不是值为3的项目。以下列表理解可以满足您的需求。
a = [letter for letter in a if letter != 3]
[编辑]不,我错了“删除” - 我把它与“pop”混淆了