2017-10-12 21 views
1

私はちょっと混乱しています、ここで、 "続行"が実行された後、それは自動的に現在の反復から飛び出し、のインデックスを更新しません、そうですか?あなたを介して反復されているイテレータの次の項目へこのPythonコードではどのように「続行」されますか?

def method(l): 
    index = 0 
    for element in l: 

     #if element is number - skip it 
     if not element in ['(', '{', '[', ']', '}', ')']: 
      continue // THIS IS MY QUESTION 
     index = index+1 
     print("index currently is " + str(index)) 
    print("--------------------\nindex is : " + str(index)) 

t = ['4', '7', '{', '}', '('] 
method(t) 
+0

はい、あなたは間違いです – TerryA

+0

これは間違いなく簡単なコンソールで試してみると一例です。 – Chinny84

+0

オグ、私は大学以来この知識のギャップを持っていた....あなたに感謝! – ERJAN

答えて

3

キーワードcontinueスキップ。

あなたの場合は、リストlの次の項目に1を追加せずにindexに移動します。

for i in range(10): 
    if i == 5: 
     continue 
    print(i) 

5に到達したときに出力し、次の項目に進んであろう:ループの次の反復に

1 
2 
3 
4 
6 
7 
8 
9 
1

continue移動

は単純な例を与えます。

continueが実行されると、ループは反復子が更新される次の反復に移動するので、ループ内の次のコードはスキップされます。 continueが実行されると、ループが次の反復に移動しますようにあなたのコードのために、(すなわち、indexprintを更新)以降のコードはスキップされます:

したがって
for element in l: 

    #if element is number - skip it 
    if not element in ['(', '{', '[', ']', '}', ')']: 
     continue # when this executes, the loop will move to the next iteration 
    # if continue executed, subsequent code in the loop won't run (i.e., next 2 lines) 
    index = index+1 
    print("index currently is " + str(index)) 
print("--------------------\nindex is : " + str(index)) 

、「継続」が実行された後、現在の反復は更新されずに終了しますindex

関連する問題