gpt4 book ai didi

python - 如何在 Python 的循环中更改迭代变量的值?

转载 作者:太空狗 更新时间:2023-10-30 02:33:37 27 4
gpt4 key购买 nike

我有这样的东西:

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

最佳答案

我会这样做:

def myfilter(token):
return token.translate(None, string.punctuation)

tokens = filter(None, map(myfilter, tokens))

如果逻辑太复杂,无法通过map/filter来做,推荐使用这种方式:

for item in items[:]: # [:] copies the list
if condition(item):
items.remove(item)

关于python - 如何在 Python 的循环中更改迭代变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12775654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com