我有這樣的事情:如何在Python中的循環中更改迭代變量的值?
#tokens is a list of a few words
for i in xrange(0,len(tokens)):
#some code to modify the contents of token[i]
if tokens[i] == some value:
del tokens[i]
現在,如果陣列具有7個元素,i從0變爲6,以及在處理的中途,如果我刪除陣列元素,那麼新的大小變爲6但循環仍然會運行,直到我= 6和訪問令牌[6]並拋出一個錯誤,因爲新的大小是6,即最大索引是5.
我想我可以使用一個while循環,如:
while(i<currMaxIndex)
其中我可以動態改變currM axIndex。
但我真的很好奇,知道是否有任何方法來改變我在for循環本身。
如果絕對必須知道,這是我的代碼:
for i in xrange(0,len(tokens)):
tokens[i]=tokens[i].translate(string.maketrans("",""),string.punctuation)
if tokens[i]=='':
del tokens[i]
這有點搖頭計算嗎?用[:]複製整個列表? –