次の2つの例で結果が異なるのはなぜですか?リストをスライスすると、リスト要素の(浅い)コピーになると思ったのでa
、どちらの場合も変更しないでください。
>>> a = [1, 2, 3, 4, 5]
>>> a[3: 5] = [0, 0] # example 1
>>> a
[1, 2, 3, 0, 0] # elements in the original list are changed
>>> b = a[3: 5] # example 2
>>> b = [100, 100]
>>> a # elements in the original list are unchanged
[1, 2, 3, 0, 0]
リストスライスは、コンテキストによって異なります。
a[3: 5] = [0, 0]
これはスライス割り当てです。これは[0, 0]
、のセクションに値を割り当てることを意味しますa
。これは明らかに変更しa
ます。
b = a[3: 5]
これにより、のセクションのコピーが作成され、にa
割り当てられb
ます。とは関係ありませんa
。変更してb
もまったく影響はありませんa
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加