Python 的for 的重要一点

It is not safe to modify the sequence being iterated over in the loop (this can only happen for mutable sequence types, such as lists). If you need to modify the list you are iterating over (for example, to duplicate selected items) you must iterate over a copy. The slice notation makes this particularly convenient:


在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改你迭代的序列(例如,复制选择项),你可以迭代它的复本。通常使用切片标识就可以很方便的做到这一点:


>>> 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']


posted @ 2012-12-30 19:59  完美视界  阅读(148)  评论(0编辑  收藏  举报