Функция Python id()
Вот объяснение id() в w3schools:
Функция id() возвращает уникальный идентификатор указанного объекта. Все объекты в Python имеют свой уникальный идентификатор. Идентификатор присваивается объекту при его создании. Идентификатор — это адрес памяти объекта, и он будет разным при каждом запуске программы.
Из приведенного выше объяснения, есть кое-что, на что мы должны обратить внимание:
- Важно отметить, что все в Python является объектом, даже целые числа и классы. Поэтому, если вы запустите id(123), вы все равно получите целое число, представляющее его идентификатор.
- Целое число, возвращаемое функцией id(), представляет собой адрес памяти объекта, поэтому мы можем использовать это целое число, чтобы проверить, указывают ли два объекта на один и тот же адрес.
Объект списка Python и id()
Объект списка в Python очень похож на массив в других языках. Все они имеют некоторые методы, такие как вставка, выталкивание, удаление, индексация и т. д. Вы также можете читать и записывать определенную позицию в списке с постоянным временем. Но если вы используете функцию id() для поиска элементов в списке, вы обнаружите самую большую разницу между списком и массивом:

Адреса элементов в списке не являются непрерывными! Обычный массив использует непрерывные позиции в памяти для хранения данных, а список в питоне — нет.
На самом деле список в python реализован массивом указателей, которые указывают на элементы списка.
неизменный
В Python все является объектом, и у каждого есть следующие атрибуты:
- identity: для представления адреса памяти для этого объекта. Вы можете получить идентификатор из метода id(), упомянутого выше. После того, как объект создан, вы не можете изменить его идентификатор.
- type: для представления типа этого объекта. Вы также можете получить его из метода type(). Опять же, как только объект создан, вы не можете изменить его тип.
- значение: для представления данных или значения в этом объекте. В отличие от идентификатора и типа, значение некоторого объекта может быть изменено. Мы называем такие объекты «изменяемыми» и «неизменяемыми» для тех, которые не могут изменить значение».
Итак, какие общие типы являются изменяемыми и неизменяемыми в python?
неизменяемые объекты:
- Числовые типы: int, float, комплекс
- нить
- кортеж
изменяемые объекты:
- список
- диктовать
- набор
Мы можем показать, что список является изменяемым, используя id():
>>> a = [0, 1, 2] >>> id(a) 4472721480 >>> a[2] = 3 >>> id(a) 4472721480 >>> a [0, 1, 3]
Или покажите, что int неизменен:
>>> a = 1 >>> id(a) 4470587440 >>> a = 2 >>> id(a) 4470587472
ссылка: http://wsfdl.com/python/2013/08/14/%E7%90%86%E8%A7%A3Python%E7%9A%84mutable%E5%92%8Cimmutable.html