num = [1, 2, 3]
Насколько мне известно, список num содержит ссылки на объекты int. Поскольку значения находятся в диапазоне [-5, 256], я считаю, что их следует кэшировать. Верно ли я в своей оценке?
num
int
[-5, 256]
>>> lst = [1, 2, 3] >>> 1 is lst[0] True
Кажется, это так в моей сборке (CPython 3.8).
Механизм интернирования не должен заботиться о том, какие ссылки (имена переменных, позиции в списке, ...) указывают на объект - они все равно однонаправлены.
Любой список? Нет. Большинство объектов не кэшируются.
Этот список? Да, потому что они целые числа в диапазоне [-5, 256], как вы сказали.
Имейте в виду, что это детали реализации CPython.