关于list的漏删

使用for遍历list时,容易出现漏删,例如:

app_id_list = [1,2,3,4,5,6]

for app_id in app_id_list:

      print "app_id", app_id

      app_id_list.remove(app_id)

print "at last:", app_id_list

 

打印出:

app_id 1

app_id 3

app_id 5

at last:[2,4,6]

原因:

有一些元素被跳过,没有被处理。 
分析一下过程, 
当app_id为1时,进入循环,将其删除,此时的列表变成[2,3,4,5,6] 
第二次进入循环,app_id取得第二个元素,也就是3(2被跳过),然后删除,此时列表变成[2,4,5,6] 
第三次进入循环,app_id取得第三个元素,也就是5(4被跳过),然后删除,此时列表变成[2,4,6] 
没有第四个元素,循环退出。 
最后输出的结果就是[2,4,6]

若要删除只能用如下方法:

a=[1,2,3,4,5,6]

for i in range(len(a)):

a.remove(a[0])

print a

 

或者用while遍历

转载于:https://www.cnblogs.com/yueyanru/p/8682065.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值