1

我有以下代码:

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

如何让我的循环从头开始?

4

2 回答 2

2

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

i = 0
while i < len(letters):
    if ....

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

循环中的迭代由 的值控制i。只要i小于字符串的长度 (7),它就会一直循环,每次都会增加循环中的i(用作计数器)的值。当您设置时,i = 0您将再次(重新)启动计数器。

请注意,与您拥有的 for 循环不同for i in letters(并i连续获取字母的值),i它是一个简单的计数器,因此要访问给定的字母,您必须对其进行索引。IE,letters[i]

于 2012-07-26T22:27:41.943 回答
0

这样的事情可能会满足您的需求:

while letters and not breakCondition:
  for i in letters:
    if someLogic():
      letters = letters.replace(i, '')
      break
于 2012-07-26T22:27:34.213 回答