3 回答

TA貢獻1835條經(jīng)驗 獲得超7個贊
原因是什么?
在循環(huán)中修改正在迭代的序列是不安全的(這只能發(fā)生在可變序列類型(例如列表)上)。 如果您需要修改正在迭代的列表(例如,要復制選定的項),則必須對副本進行迭代。.
i += i++ + ++i
它怎么能被重寫以刪除每一項?
del letters[:]
(如果需要更改對此對象的所有引用) letters[:] = []
(如果需要更改對此對象的所有引用) letters = []
(如果您只想使用新對象)
[:]
#remove unsafe commandscommands = ["ls", "cd", "rm -rf /"]for cmd in commands[:]: if "rm " in cmd: commands.remove(cmd)
commands = [cmd for cmd in commands if not is_malicious(cmd)]

TA貢獻1946條經(jīng)驗 獲得超3個贊
letters=['a','b','c','d','e','f','g','h','i','j','k','l']for i in letters[:]: # note the [:] creates a slice letters.remove(i)print letters
letters = []
添加回答
舉報