我有这样的事情:
#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,但循环仍将运行直到 i=6 并访问令牌 [6 ] 并抛出错误,因为新大小为 6,即最大索引为 5。
我想我可以在某些条件下使用 while 循环,例如:
while(i<currMaxIndex)
我可以在其中动态更改 currMaxIndex。
但我真的很想知道是否有任何方法可以改变 for 循环本身中的 i 。
如果绝对必须知道,这是我的代码:
for i in xrange(0,len(tokens)):
tokens[i]=tokens[i].translate(string.maketrans("",""),string.punctuation)
if tokens[i]=='':
del tokens[i]