关于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