トラバーサルのための可変タイプの場合

トラバーサルのための可変タイプの場合

例えば

lis = [1,6,1, 2, 3,3, 4, 5]
for i in lis:
    lis.remove(i)
    print(lis)

[6、1、2、3、3、4、5]
[6、2、3、3、4、5]
[6、2、3、4、5]
[6、2、3、5]

一般的な考え方として、結果は、各プリントは、1つ少ないだろうこれまでのリスト[]を知っているだろう。

なぜリストが変数の型で、そのコンテンツの各変更は、元のアドレスであるので、私は任意の値を取得するまでは、リストの次のサイクルの結果が徐々に少なくなって、このような結果を印刷します。

ソリューション(トラバースするために使用される新しいオブジェクトのリストのコピー)

lis = [1,6,1, 2, 3,3, 4, 5]
for i in lis.copy():
    lis.remove(i)
    print(lis)

[6、1、2、3、3、4、5]
[1、2、3、3、4、5]
[2、3、3、4、5]
[3、3、4、5]
[3 、4、5]
[4、5]
[5]
[]

おすすめ

転載: www.cnblogs.com/zx125/p/11305589.html