Помещает ли Python элементы списка? - PullRequest
3 голосов
/ 18 июня 2020
num = [1, 2, 3]

Насколько мне известно, список num содержит ссылки на объекты int. Поскольку значения находятся в диапазоне [-5, 256], я считаю, что их следует кэшировать. Верно ли я в своей оценке?

Ответы [ 2 ]

5 голосов
/ 18 июня 2020
>>> lst = [1, 2, 3]
>>> 1 is lst[0]
True

Кажется, это так в моей сборке (CPython 3.8).

Механизм интернирования не должен заботиться о том, какие ссылки (имена переменных, позиции в списке, ...) указывают на объект - они все равно однонаправлены.

0 голосов
/ 18 июня 2020

Любой список? Нет. Большинство объектов не кэшируются.

Этот список? Да, потому что они целые числа в диапазоне [-5, 256], как вы сказали.

Имейте в виду, что это детали реализации CPython.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...