Рост и развитие


Previous Entry Add to Memories Share Next Entry
python xrange() против range()
Я
skator
Сегодня у меня во время выполнения одной программы на языке python заканчиваль память и программа вылетала с ошибкой. Эта программа обрабатывает данные и сегодня мне нужно было обработать гиганский кусок данных.

Но тут я вспомнил про функцию xrange(). Она делает тоже самое что и range(), но не создает массива в памяти. Я в коде заменил одну функцию на другую и... Мне этого оказалось достаточно, чтобы обработать нужный кусок данных.

Итак, что это за функция и как ее использовать. Начну с примера

for i in range(10):
    print (i)


В этом примере напечатаются числа от 0 до 9 включительно. При этом функция range() создаст в памяти массив из 10 чисел (от 0 до 9). Но если переписать пример в там виде (используя xrange()):

for i in xrange(10):
    print (i)


То массив в памяти создан не будет, и эта самая память может быть потом использована на более важные вещи.

You are viewing skator