2017-02-25 13 views
-1
A = [2,4,6,8,10,12] 

for a in A: 
    if a%2 == 0: # If 2 divides a, remove a from A 
    A.remove(a) 

    print(A) 

このコードブロックを実行すると、コンソール出力は[4,8,12]になります。Pythonで特定のforループを理解する

[A]の要素のいずれかが2で割り切れる場合、私たちはリストからそれらを削除します。上記のリストでは、実際にはすべての要素が2で割り切れますが、2,6、および10だけが削除されています。 4,8、および12が削除されなかった理由を誰かが気にかけていますか?

答えて

0

反復処理中にリストから要素を削除すると、反復処理が中断されます。フィルタ関数またはリストの理解を代わりに使用する必要があります。

関連する問題