python常见错误

前言

记录一些奇葩问题

Python List 遍历

问题

1
2
3
4
5
6
7
alist=[1,2,3,4,5,6]
for i in alist:
print i
alist.remove(i)
1
3
5

原因

使用for i in list的方式遍历列表时,使用的是下标操作,remove使用的是值操作,最初alist的值为[1,2,3,4,5,6]

循环的第一次,下标指向0,此时打印出来的值为1,执行remove之后,列表变为[2,3,4,5,6]

此时进行循环的第二次的时候,下标为1,但是alist列表下标为1的位置的值变为了3

后面以此类推。