pythonの数値は可変型ですか

この記事では、6つのデータタイプを含むPython3を例として使用します。

1、 数:
int整数
長いです
浮く
繁雑
ブール値(0および1)
2、 ストリング
3、 リスト
4、 タプル
5、 辞書
6、 セットする

id関数を使用して、検証のために変数iのメモリアドレスを表示します(hex(id(i))を使用して16進数のメモリアドレスを表示します)

不変のタイプ:数値、文字列、タプル

不変型変数の再割り当ては、実際には不変型オブジェクトを再作成し、元の変数を新しく作成されたオブジェクトに再ポイントします(他の変数が元のオブジェクトを参照していない場合(つまり、参照カウントが0の場合)、元のオブジェクトはリサイクルされます)。

不変型intの場合、作成される不変型の数に関係なく、値が同じである限り、それらはすべて同じメモリアドレスを指します。

例:番号:

 number1=123id(number1)8790928028112
 number2=123id(number2)8790928028112
 number3=321id(number3)49143760

i + = 1を実行すると、int型が不変であるため、メモリアドレスが変化することがわかります。

 i=5id(i)8791205700368
 i+=1id(i)8791205700400
   
 j=i
 id(j)8791205700400
 j
6

変数タイプ:リスト、辞書、セット

変数データタイプを再割り当てしても、新しいオブジェクトは作成されません。

例:リスト:

 list1=[1,2,3,4,5]id(list1)49307976
 list2=[1,2,3,4,5]id(list2)49307784
 list1.append(123)
 list1
[1,2,3,4,5,123] id(list1)49307976

list1 = list2を実行すると、list1とlist2が同じメモリアドレスを指し、list1とlist2のタイプがすべてListであるため、変数タイプ、list1とlist2のいずれかを変更すると、他のListの値に影響します。

 list1
[1,2,3,4,5,123] id(list1)49307976
   
 list1=list2
 id(list1)49307784id(list2)49307784
 list2
[1,2,3,4,5]
 list2.append(456)
 list1
[1,2,3,4,5,456]
 list2
[1,2,3,4,5,456]

概して:

不変タイプは値(Value)を参照し、値は変更されず、オブジェクトは変更されません。値が変更され、オブジェクトが変更されます。

可変データタイプは名前(Name)を参照し、名前は変更されず、オブジェクトは変更されません。名前が変更され、オブジェクトが変更されます。

コンテンツの拡張:

**Pythonの可変で不変のデータ? ****

  1. 変数タイプにはlistとdictが含まれ、不変タイプにはstring、number、tupleが含まれます。
  2. 変更操作が実行されると、変数タイプはメモリ内のアドレスを転送します。つまり、新しいメモリを開かずにメモリ内の値を直接変更します。
  3. 不変タイプを変更した場合、元のメモリアドレスの値は変更されませんが、新しいメモリが開かれ、元のアドレスの値がコピーされ、新しく開かれたメモリの値が操作されます。

これまでのところ、pythonの数値が可変型であるかどうかに関するこの記事が紹介されています。関連するコンテンツ、python不変型の数値については、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。将来的にはZaLou.Cnをたくさんサポートしてください!

Recommended Posts

pythonの数値は可変型ですか
Pythonのシーケンステーブルとは
pythonにヘルパー関数はありますか
pythonのイントロスペクションとは何ですか
pythonのオブジェクト指向とは何ですか
Python変数スコープとは
pythonのリスト内包表記とは何ですか
pythonに関数のオーバーロードはありますか
Pythonはクロスプラットフォームの言語コードです
Pythonのすべてがオブジェクトです
python言語のアルゴリズムはありますか
Qixiの告白アーティファクトをPythonで作成する
Pythonの匿名関数とは何ですか
変数タイプをpythonで宣言できますか
pythonで辞書を並べ替える方法
Pythonは主にどの方向に使用されます
pythonでのadbの機能は何ですか
Python 3.9が登場!
pythonの関数
Pythonゲームで重力をシミュレートする方法
真新しいUbuntuにPython3環境をインストールする
告白プログラムをpythonで書く方法
Pythonで型を判断するための最良の方法
pythonで番号のリストを理解する方法
Ubuntu14.04でPython仮想環境を作成する方法
PythonはFTPを実装して、ファイルをループでアップロードします
Pythonは短いクロール音楽です
03.Pythonエントリの演算子
Pythonはゆっくりと衰退しています
Pythonの結合関数
12.Python3でのネットワークプログラミング
pythonでステートメントを印刷する
Pythonでの同時リクエスト
Ubuntuにpythonをインストールする
Pythonでのコンテキスト管理
pythonの算術演算子
pythonでguiを書く
PythonでのMongoDBの使用
PythonのStr文字列
Pythonでの計算ジオメトリ
pythonで円の領域を見つける方法
Pythonで一般的に使用されるサードパーティライブラリの大規模なインベントリ