lijun888

循环list删除其元素,有坑!

看个例子:

a = [1,2,3,4,5,6]
for i  in a:
    a.remove(i)
print(a)
返回:[2, 4, 6]

 

循环a,想删除a的所有元素,但实际确有数据保留了下来,这是为什么呢,为什么呢!!!

因为在循环a,并删除a的元素时,列表的位置发生了移位,当删除“1”后,第二个元素“2”补位,这样“2”就躲过了被删除的命运,轮到“3”了,“3”被删除之后,“4”来补位,逃过一劫,以此类推!!

所以在循环list时,不能循环的同时删除自身元素

解决的办法:新建一个相同的临时列表,用for循环临时列表,删除原列表中的元素!

例子:

b = [1,2,2,4,3,2,1,6,8]
c = b[:]
for i in c:
    if i%2 ==0:
        b.remove(i)
print(b)
返回
[1, 3, 1]

 

相关文章:

  • 2022-01-04
  • 2021-12-26
  • 2021-08-15
  • 2021-06-01
  • 2021-08-01
  • 2021-10-11
  • 2021-10-10
  • 2021-12-16
猜你喜欢
  • 2021-11-01
  • 2021-10-18
  • 2021-08-01
  • 2021-12-26
  • 2021-12-02
  • 2021-04-18
  • 2021-08-20
  • 2021-10-05
相关资源
相似解决方案