python遍历列表时删除元素_python:在遍历列表时删除列表元素

在Python中,直接在for循环中遍历并删除列表元素是不推荐的。可以使用while循环、记录要删除的索引后批量删除,或者迭代列表副本并删除原始列表的元素。此外,还可以使用过滤器或生成器表达式来实现相同的效果,确保在遍历过程中不修改正在迭代的列表。
摘要由CSDN通过智能技术生成

本问题已经有最佳答案,请猛点这里访问。

我正在迭代Python中的元素列表,对其执行一些操作,然后在满足某些条件时删除它们。

for element in somelist:

do_action(element)

if check(element):

remove_element_from_list

我应该用什么来代替删除元素?我也看到过类似的问题,但是请注意,要为所有元素执行的Do-Action部分的存在,从而消除了使用过滤器的解决方案。

你不能把它分为两个步骤,即所有元素都做这个动作,然后删除元素吗?

在for循环中迭代某个元素时,不应该从列表中删除该元素。您可以使用while循环。或者,记录要删除的所有元素的索引,然后在迭代完成后删除它们。

全部:我需要在适当的地方修改列表,没有副本。实际上,该列表被传递给一个函数,并且该函数需要修改该列表。

@斯克朗奇,仍然有可能(更好地)遍历列表,然后将其内容替换为第二遍。这就是我在回答中使用[:]的原因。

@你的第一句话是站不住脚的——看我的答案。

@约翰:@scrontch想在for循环中删除,这是一个无可争辩的坏主意。在您的示例中,您使用了while循环,这是我在注释中为您使用while循环的确切方式提出的建议。

@史考奇:我你还没有接受答案。我,你要么批评答案,要么接受答案。它将帮助那些发布了答案的人,它将使你在未来更容易得到答案。

您总是可以迭代列表的副本,这样您就可以自由

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值