私はこのようなものを持っています:
#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 まで実行され、tokens[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]