ホームページ  >  記事  >  バックエンド開発  >  Python の不変のデータ型とは何ですか?

Python の不変のデータ型とは何ですか?

anonymity
anonymityオリジナル
2019-06-11 11:16:2918369ブラウズ

Python の不変のデータ型とは何ですか?

Python の不変のデータ型とは何ですか?

Python には、整数、文字列、タプルという 3 つの不変データ型があります。

整数型

a = 1
print(id(a),type(a))
a = 2
print(id(a),type(a))
1912499232 <class &#39;int&#39;>
1912499264 <class &#39;int&#39;>

データが変化すると、変数のメモリ アドレスも変化し、整数型は不変のデータ型であることがわかります。

String

b = &#39;djx&#39;
print(id(b),type(b))
b = &#39;djx1996&#39;
print(id(b),type(b))
535056476344 <class &#39;str&#39;>
535056476624 <class &#39;str&#39;>

データが変更されると、変数のメモリ アドレスも変更され、文字列は不変のデータ型であることがわかります。

タプル

タプルは読み取り専用リストと呼ばれます。つまり、データはクエリできますが、変更できませんが、要素に保存できます。タプルの値 リストの値を変更することでタプルが変更可能か不変更かをチェックするリスト。

c1 = [&#39;1&#39;,&#39;2&#39;]
c = (1,2,c1)
print(c,id(c),type(c))
c1[1] = &#39;djx&#39;
print(c,id(c),type(c))
result:
(1, 2, [&#39;1&#39;, &#39;2&#39;]) 386030735432 <class &#39;tuple&#39;>
(1, 2, [&#39;1&#39;, &#39;djx&#39;]) 386030735432 <class &#39;tuple&#39;>

タプルのデータは変更されていますが、メモリ アドレスは変更されていないことがわかりますが、これを使用してタプルが可変データ型であることを判断することはできません。振り返ってよく考えてみると、タプルの定義は不変です。タプル内のリストの値を変更しましたが、リストは可変データ型であるため、リスト内の値は変更されてもリストのアドレスは変更されず、リストのアドレスの値はtuple は変更されていません。つまり、タプルが変更されていないことを意味します。タプルは不変であるため、タプルは不変のデータ型と考えることができます。

以上がPython の不変のデータ型とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。