Python 一旦满足条件,就从头开始迭代

Python 一旦满足条件,就从头开始迭代,python,Python,我有以下代码: letters = 'abcdefg' for i in letters: if ... #condition that tests something I need #once condition is satisfied, something is done, the condition is modified # and letters becomes: letters

我有以下代码:

letters = 'abcdefg'    
for i in letters:
        if ...
        #condition that tests something I need
        #once condition is satisfied, something is done, the condition is modified
        # and letters becomes:
                letters = letters.replace(i,'')
                ### Now I want to start this for loop again because my condition
                ### may now be met with the initial letters

如何让循环从头开始?

类似的操作可能会满足您的需要:

while letters and not breakCondition:
  for i in letters:
    if someLogic():
      letters = letters.replace(i, '')
      break

您可以尝试以下方法(根据需要调整以适合您的代码):

i=0
而我(信):
如果。。。。
字母=字母。替换(字母[i],'')#可能是你想要的
i=0
其他:
i+=1
循环中的迭代由
i
的值控制。只要
i
小于字符串(7)的长度,它将保持循环,每次增加循环中
i
的值(用作计数器)。当您设置
i=0
时,您正在(重新)启动计数器


请注意,
i
是一个简单的计数器,因此要访问给定的字母,必须对其进行索引。也就是说,
字母[I]

你的意思是重新启动“循环”而不是功能吗?对不起,是的,我的意思是重新启动循环,我将编辑标题。你所说的
条件被修改是什么意思?
在循环过程中不要试图修改iterable。它不应该在这里做坏事,因为你不是在一个可变序列上迭代。。。但它可能做不到你想要的。它当然不会改变你正在迭代的序列。a是我函数中的一个变量。我在另一个变量上测试变量abcdefg,我们称之为“Y”。一旦abcde或f为真,该变量将添加到变量Y中,这意味着我需要重新测试初始变量,看看它们现在是否满足新变量的条件。完美。真不敢相信这是如此容易等待8分钟让我接受…我有一个关于你的代码的问题,输入I=0,这会使迭代重新开始吗?好的,你的代码的问题是它不再从一开始就开始了,这是我一直在寻找的我不确定我是否理解,它确实是从头开始的。你能解释一下为什么你不这么认为吗?从我看到的代码来看,它基本上允许迭代继续。例如,如果'c'满足条件,字母现在将是'abdefg',您的代码将在'defgab'上运行……这没关系,它仍然可以完成我需要代码做的事情,只是认为如果我需要它从头开始,它就不会
i = 0
while i < len(letters):
    if ....

       letters = letters.replace(letters[i], '')  # probably what you want
       i = 0
    else:
       i += 1