#Python ではリストの長さは可変ですか? Python の変数型と不変型を紹介しましょう:
変数、不変型
変数/不変型とは、メモリ ID が変化せず、型も変化しないことを指します。値が変化するかどうかは変化しないことを前提としています。
int() と str() は両方とも不変型です
リストと辞書は変数型です
リストなどの変数オブジェクトの場合、リストを操作すると、リスト内の内容が変更されます例:
>>> a = ['c', 'b', 'a']>>> a.sort()>>> a
['a', 'b', 'c']
関連する推奨事項: "Python ビデオ チュートリアル "
不変オブジェクトの場合、たとえば、次のようになります。 str、strの操作方法:
>>> a = 'abc'>>> a.replace('a', 'A')'Abc'>> ;> ; a'abc'
文字列には replace() メソッドがあり、確かに 'Abc' が変更されていますが、変数 a は最終的には 'abc' のままです。
まず、コードを次のように変更しましょう:
>>> a = 'abc'>>> b = a.replace('a', 'A ')>>> b'Abc'>>> a'abc'
常に覚えておくべきことは、a は変数であり、'abc' は文字列であるということです。物体 !オブジェクト a の内容は「abc」であるとよく言われますが、実際には、a 自体が変数であり、それが指すオブジェクトの内容が「abc」であることを意味します。
a.replace('a', 'A') を呼び出すと、実際には文字列オブジェクト 'abc' に対して replace メソッドが呼び出されます。このメソッドは replace という名前ですが、変更されていません。 . 文字列「abc」の内容。逆に、replace メソッドは新しい文字列 'Abc' を作成して返します。変数 b を使用して新しい文字列を指すとすると、理解しやすいです。変数 a は元の文字列 'abc' を指したままですが、変数b が指す新しい文字列 'Abc' は次のとおりです:
したがって、不変オブジェクトの場合、オブジェクト自体のメソッドを呼び出しても、オブジェクト自体の内容は変更されません。代わりに、これらのメソッドは新しいオブジェクトを作成してそれを返すため、不変オブジェクト自体は常に不変になります。
以上がPythonのリストの長さは変数ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。