Python docは、リストをスライスすると新しいリストが返されると言っています。
「新しい」リストが返される場合、「スライスへの割り当て」に関連する次の疑問があります。
a = [1, 2, 3]
a[0:2] = [4, 5]
print a
出力は次のようになります。
[4, 5, 3]
- 何かを返す何かが表現の左側に来ることができるでしょうか?
- はい、私はドキュメントを読んでそれが可能であると述べていますが、リストをスライスすると「新しい」リストが返されるので、元のリストが変更されているのはなぜですか?その背後にあるメカニズムを理解できません。
a[0] = 4
をするか理解していますか?
=
。そのため、これを無効な構文として破棄する代わりに、Pythonはそれを予想以上のものに変換します。pythonには参照がないため、スライスの結果で元のリストを変更しても機能しません。あなたはコピーを取得します。アプリケーションについてより多くの情報を提供していただければ、 'pythonic'の方法でより適切にサポートできる可能性があります。:)