次のコンテナはPythonで変更可能ですか、それとも不変ですか?
リスト
タプル
辞書
リスト、辞書:可変
タプル:不変
可変とは、変数が格納または参照されるのと同じメモリブロック自体で変数の値を変更できることを意味します。
不変とは、変数の値を変更しようとすると、新しいメモリブロックが作成され、そこに新しい値が格納されることを意味します。
不変-文字列、タプル、数値など可変-リスト、辞書、クラスなど
例:
変更可能なリストを考えてみましょう...
a = [1,2,3]リストに4,5を追加したい場合は、リスト'a'が"A0XXX"という名前のメモリブロックにあると仮定します...b=[4,5]両方にa+を追加します= b now a = [1,2,3,4,5]したがって、最終リスト「a」も同じメモリブロック「A0XXX」に保存されます。
リストは変更可能であるため、同じメモリブロックに格納されます。
不変の場合、最終リスト「a」は他のメモリブロック「B0XXX」に格納されるため、不変オブジェクトで同じことを行おうとすると、可変オブジェクトを変更して同じメモリブロックに格納できます。変更された値を格納するためにメモリブロックが作成されます。
tuple - immutable
list- mutable
dictionary - mutable