Python遍历删除元素

需求:

有一个列表:ls = [1,2,3,4,5,6],要求删除其中的偶数

如果是下面这种方法,在遍历的过程中删除,会有问题

for i in range(len(ls)):
    if ls[i]%2 == 0:
        del ls[i]

 异常:IndexError: list index out of range

因为删除一个元素后,列表的长度改变了,所以会报下标越界。

可以采取一下三种方法:

1.

ls = [x for x in ls if x%2!=0]      #列表解析

 2.

ls = filter(lambda x:x%2!=0,ls)  #filter

 3.

for i in range(len(ls)-1,-1,-1):     #倒序
    if ls[i]%2 == 0:
        del ls[i]

 

转载于:https://www.cnblogs.com/ljwbook/p/4960478.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值