python中处理list需要注意的一点

Python 中的for 语句和C 或Pascal 中的略有不同。通常的循环可能会依据一个等差数值步进过程
(如Pascal)或由用户来定义迭代步骤和中止条件(如C ),Python 的for 语句依据任意序列(链表或
23
字符串)中的子项,按它们在序列中的顺序来进行迭代。例如(没有暗指):
>>> # Measure some strings:
... a = [’cat’, ’window’, ’defenestrate’]
>>> for x in a:
... print x, len(x)
...
cat 3
window 6
defenestrate 12
在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要
修改你迭代的序列(例如,复制选择项),你可以迭代它的复本。通常使用切片标识就可以很方便的做到
这一点:
>>> for x in a[:]: # make a slice copy of the entire list
... if len(x) > 6: a.insert(0, x)
...
>>> a
[’defenestrate’, ’cat’, ’window’, ’defenestrate’]