根据python索引,快速从python列表中删除对应值

  在已知索引的情况下,如何快速删除列表中索引对应的值,如果直接删除会引起错误,如下:

a = [0,1,2,3,4,5,6,7,8,9]
index = [4,3,6]
for i in index:
       del a[i]
print(a)

原本想删除列表a中的4,3,6三个数,结果删除列表a中的3,4,8三个数,原因在于每次删除一个数,列表a已经发生改变,每个值对应的索引也发生了改变。

为了删除预期值,可以每次删除索引中的最大值,如下:

 a = [0,1,2,3,4,5,6,7,8,9]
 b = [4,3,6]
 for i in sorted(b)[::-1]:
        del a[i]
 print(a)

通过sorted()函数对索引进行倒排序,这样每次都是获取最大索引值,每次删除最大索引对应值,这样对索引值较小对应值不产生影响,能达到预期的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值