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

标签 python for-loop while-loop

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

  • 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

关于Python:更改 'for' 循环的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18193808/

相关文章:

python - 无法编辑 django 表

Python 一行代码(将 perl 转换为 pyp)

c - 输出错误,但为什么呢?

PHP、MySQL 统计

Python 随机不工作

python - mypy:如何将 "convert"可变长度元组恢复为固定长度元组?

c - 我如何在单行上打印数字

java - 从排序数组中排除结尾零和重复元素

javascript - 如何强制循环等待用户按下提交按钮?

c++ - 如何在 C++ 中创建 ASCII 艺术条形图?