Skip to main content
 首页 » 编程设计

Python:更改 'for' 循环的条件

2025年05月04日18落叶无声

我试图遍历一组点,如果满足某些条件,则在当前点和下一个点之间添加另一个点。然后我想再次开始循环,遍历旧点和新点。 例如:

  • for i in range(3)

    • 如果 i 不满足特定的条件集,在 i 之后添加一个新点。这会将范围更改为 range(4) 。结束循环,并使用 for i in range(4) 重新开始。
    • 如果我确实满足条件,则继续 range(3)。如果 i 无需添加新点就到达了结尾,则退出循环并继续执行其余代码。

我已经尝试了多种方法,但我无法得到任何工作。我的理解是:

b = 3 
for i in range(b): 
    if (i meets conditions): 
        pass 
    else: 
        b = b+1 
        "retry entire loop with new b" 

我也尝试过使用 while 循环,但是如果添加新点,我看不出如何让它在第一点重新开始。

我可能遗漏了一些简单的东西,但我就是看不到解决方案。

感谢您的帮助!

请您参考如下方法:

你需要为此使用递归函数:

def func(l): 
   for i, el in enumerate(l): 
       if (el match the conditions): 
            l.insert(i+1, something) 
            return func(l) 
   return l 
 
 
l = [1, 2, 3] 
result = func(l) 

或者使用 while 循环:

l = [1, 2, 3] 
while True: 
    i = 0 
    if i >= len(l): 
        break 
    if (l[i] match the condition): 
        l.insert(i+1, something) 
        i = 0 
    else: 
        i += 1