@DVoropaev
Ставлю + к карме на хабре за ответы на вопросы

Почему при двух способах задания одинакового списка, он занимает разный объем памяти?

>>> a = [[i for i in range(0, 5)] for j in range(0, 2)]
>>> a
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
>>> sys.getsizeof(a)
96

>>> a = [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
>>> a
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
>>> sys.getsizeof(a)
80
  • Вопрос задан
  • 547 просмотров
Пригласить эксперта
Ответы на вопрос 2
de-iure
@de-iure
just a crazy lawyer
потому что это разные объекты... в первом случае это генератор списка, во втором это список

>>> a = [[i for i in range(0, 5)] for j in range(0, 2)]
>>> a
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
>>> sys.getsizeof(a)
96

тут у вас выводится не объем памяти который занимает сгенерированный список, а объем памяти который занимает непосредственно сам генератор...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы