python五之for删除陷阱

本文探讨了在Python中从列表中删除元素时常见的陷阱,特别是在遍历过程中删除列表元素导致的漏删问题,并提供了一种可靠的方法来解决这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       最近模仿原样改善的一个python写的飞机大战游戏,里面有一部分要删除已出局的子弹,当写到这里时,想起了一个扩展的知识点,就在在循环中删除元素时是有坑的。例如:
a=[11,22,33,44,55,66,77]  
我们执行一个循环 :
for  i  in  a:
       printf(i)
       if i==33 or i==44:
             a.remove(i)
当我们执行到a列表的第三个元素时,即i==33时,33被删除。
然后列表中会少了一个一个元素,空出一个位置,44以及后面元素将依次补上去,最后那个位置空出,即没有了,此时i继续循环,循环到下一个位置,即a列表的第四个位置,即i==55,此时我们发现44被遗漏了。所以这个就是我们说的循环中删除元素是有坑的,即漏删,因此循环中不能随便删除。

     如若我们想在执行一次删除操作的时候改变这个bug,那么我们可以将我们选择出的要删除的元素存储起来,然后进行删除,如:
for i in a:
     if i==33 or  i==44:
         b.append(i)
for i in b:
    a.remove(i)
此时,便可以正常的删除了。

新手小白,欢迎指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值