Skip to main content
 首页 » 编程设计

python之在 For 循环中更新索引值

2025年05月04日952php

基于在列表中找到的元素,我想更新 for 循环中的索引值。我相信我已经这样做了,但是我的 Python 脚本似乎没有输出正确的值,我也不知道为什么:

我的列表是这样的:

dataXY = [['6', 'c', '3', '7', '2', '9', '1', '7'],['8', '4', 'c', '7', '9', '3', '4', '7', '1', '2']] 

我的代码是:

for lists in dataXY: 
    XYbezier = [] 
    final_lists = [] 
    for datum in range(len(lists)): 
        if lists[datum] == 'c': 
            for k in range(-1,4): 
                if k != 0: 
                    XYbezier.append(lists[datum+k]) 
        else: 
            if lists[datum-1] == 'c': 
                datum += 3 
                if datum != len(lists): 
                    final_lists.append(lists[datum]) 
            else:    
                final_lists.append(lists[datum]) 
    print datum 

它打印的是这样的: 1个 5个 3个 4个 5个 6个 7 0 1个 2个 6个 4个 5个 6个 7 8个 9

由于某种原因,索引值正在被重置,但随后又恢复了(从它如何从 1 跳到 5 然后又回到 3)我不明白为什么要这样做,我需要索引值来跳跃 3 个位置并永久更新,而不是将自身恢复到原始值。

请您参考如下方法:

当您使用 for 循环时,索引变量是从列表中的值加载的。 range(x) 在每次迭代时创建列表 [0,1,2, ... ,x],datum(在您的case) 从该列表中获取一个新的数值。这会覆盖 datum 可能持有的任何值。

您可以通过切换到 while 循环来实现您的目标:

datum = 0 
end = len(lists) 
while datum < end: 
    # do stuff 
 
    # don't forget to increment datum 
    datum += 1