for ループとリストの反復処理 - 「for a[-1] in a:」はどのように機能しますか? 質問する

for ループとリストの反復処理 - 「for a[-1] in a:」はどのように機能しますか? 質問する

出力を生成するコード スニペットを次に示します。はリストの番号 3 にアクセスするので、0 1 2 2出力は予想していました。 オンラインで説明されている内容では、「 の値は各反復で変化する」とありますが、その方法や理由がよくわかりません。 説明があれば教えてください。3 3 3 3a[-1]a[-1]

a = [0, 1, 2, 3]
for a[-1] in a:
    print(a[-1])

ベストアンサー1

を実行する際for a[-1] in a、実際にはリストを反復処理し、現在の要素の値を に一時的に保存しますa[-1]

ループは次の手順に従って確認できます。

a[-1] = a[0] # a = [0, 1, 2, 0]
print(a[-1]) # 0
a[-1] = a[1] # a = [0, 1, 2, 1]
print(a[-1]) # 1
a[-1] = a[2] # a = [0, 1, 2, 2]
print(a[-1]) # 2
a[-1] = a[3] # a = [0, 1, 2, 2]
print(a[-1]) # 2

したがって、3 番目の要素にいるときは、 が2に格納されますa[-1](この値は です1が、開始0前と3開始時には でした)。

最後に、最後の要素 (および反復の終了) になると、 に格納される最後の値a[-1]となり、2これが 2 回印刷される理由となります。

おすすめ記事