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。が文字列の長さ (7) よりも短い限り、ループ内で(カウンターとして機能する)iの値をインクリメントするたびに、ループし続けます。i設定i = 0すると、カウンターが再び(再)開始されます。

for i in lettersあなたが持っていた(そしてi連続して文字の値を取得した)forループとは異なりi、単純なカウンターであるため、特定の文字にアクセスするには、それにインデックスを付ける必要があることに注意してくださいすなわち、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 に答える