Связанный список xor хранит xor двух адресов для экономии места на диске. Это может быть полезно в низкоуровневых языках, которые напрямую манипулируют адресами памяти. В Python не так много, потому что в Python вы не обрабатываете память напрямую.
Python Имена (переменные) являются ссылками на объекты, управляемые средой выполнения Python. Но эта ссылка не является адресом памяти.
В CPython вы можете больше или меньше получить адрес объекта с помощью id()
функция, но это деталь реализации из CPython, а не свойство языка. Кроме того, Python объекты намного больше, чем вы думаете. В C -подобных языках целое число обычно составляет 4 байта.
Python предоставляет array
для "эффективных массивов числовых значений c. Давайте создадим массив из 4-байтовых целых чисел;
In [5]: import array
In [6]: a = array.array('l', range(10))
Out[6]: array('l', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Давайте проверим разницу между адресами первого и второго элемента в массиве:
In [7]: id(a[1]) - id(a[0])
Out[7]: 32
Итак, на моей машине размер 4-байтового целого числа как CPython объект на самом деле составляет 32 байта. Это в основном потому, что среда выполнения Python должна выполнять большую работу за кулисами, чтобы управлять памятью для вас.