python中list删除元素,在Python中遍历列表时删除元素

In Java I can do by using an Iterator and then using the .remove() method of the iterator to remove the last element returned by the iterator, like this:

import java.util.*;

public class ConcurrentMod {

public static void main(String[] args) {

List colors = new ArrayList(Arrays.asList("red", "green", "blue", "purple"));

for (Iterator it = colors.iterator(); it.hasNext(); ) {

String color = it.next();

System.out.println(color);

if (color.equals("green"))

it.remove();

}

System.out.println("At the end, colors = " + colors);

}

}

/* Outputs:

red

green

blue

purple

At the end, colors = [red, blue, purple]

*/

How would I do this in Python? I can't modify the list while I iterate over it in a for loop because it causes stuff to be skipped (see here). And there doesn't seem to be an equivalent of the Iterator interface of Java.

解决方案

Iterate over a copy of the list:

for c in colors[:]:

if c == 'green':

colors.remove(c)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值