Следующий код выдает ошибку memory error
x = [] for i in range(1000000000): x.append(i)
Сколько элементов можно сохранить в список и от чего зависит заполнение памяти?
python 3.7 x64/ubuntu 18.04/4Gb Ram
x = [] for i in range(1000000000): x.append(i)
RodegastУ Вас 64гб RAM?
> Следующий код выдает ошибку memory error … Сколько элементов можно сохранить в список и от чего зависит заполнение памяти?Я для прикола запустил у себя этот код, он отработал нормально и сожрал почти 40 ГиБ памяти. Выводы делай сам…
ynosЗаполнение памяти зависит, как ни странно, от того чем вы ее заполняете. Для списка из n элементов нужно n * <размер элемента> байтов. Для разных ОС, разных архитектур с разным количеством RAM и разных данных колличество элементов будет отличаться.(возможно даже что эта цифра будет разной для разных версий пайтона), и все упираеться в то сколько памяти сможет скушать ваш пайтон.
Сколько элементов можно сохранить в список и от чего зависит заполнение памяти?
x = [0] for i in range(1000000000): x.append(x[0])
if (new_allocated > (size_t)PY_SSIZE_T_MAX / sizeof(PyObject *)) {
PyErr_NoMemory();