@ldmitriy

Python. Сколько элементов можно положить в список?

в х32 и х64. И какой максимальное число может быть?
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 3
@deliro
Агрессивное программирование
От размера ОЗУ зависит. И если у тебя появился такой вопрос, скорее всего, тебе лучше юзать numpy.array вместо питоновых списков. Или хотя бы array.array
Ответ написан
Может иметь очень и очень много элементов. Максимально возможное значение ограничивается значением из sys.maxsize
Для 32 битных систем - 2,147,483,647
Для 64 битных систем - 9,223,372,036,854,775,807

Но всё так или иначе упрётся в ресурсы вашего компьютера) А именно в память.
Ответ написан
@immelnikoff
Изучаю БД. Пока больше спрашиваю, чем отвечаю
Кол-во элементов списка ограничивается только доступным объемом ОЗУ.
Допустим у вас 32-битная ОС.
Список, в отличие от массива, устроен таким образом, что в самом списке хранятся только адреса (из 32-битного адресного пространства) расположения самих данных. При этом, хранить в памяти нужно и адреса (элементы списка), и сами данные.
Так вот, при создании списка, например, с 2,147,483,647 элементами только для хранения элементов списка (адресов) потребуется не менее 2,147,483,647 x 32 = 68,719,476,736 бит памяти, или 8,589,934,592 байт = 8 ГБ.
А ведь ещё нужно хранить сами данные. И не нужно забывать, что запущенный софт на машине тоже требует для своей работы память.
ps. Массивы гораздо эффективнее используют память, но есть ограничение – все элементы массива имеют единый заранее определенный тип.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
15 нояб. 2019, в 16:24
5000 руб./за проект
15 нояб. 2019, в 16:13
5000 руб./за проект
15 нояб. 2019, в 15:49
10000 руб./за проект