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