Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
04 Янв 2024
1 мин
1104

Разница между функциями range и xrange в Python 2.X

В Python, особенно в его второй версии, существуют две функции для создания последовательности чисел — это range и xrange. Они играют важную роль в циклах

В Python, особенно в его второй версии, существуют две функции для создания последовательности чисел — это range и xrange. Они играют важную роль в циклах и итерациях.

Обе функции принимают три аргумента: начальное значение, конечное значение и шаг. Например:

range(0, 10, 2)
xrange(0, 10, 2)

Оба этих вызова вернут последовательность [0, 2, 4, 6, 8].

Однако важно отметить, что range и xrange работают по-разному. Функция range возвращает список, который содержит всю последовательность чисел сразу. Таким образом, если диапазон, который вы создаете, достаточно большой, range может занять много памяти.

С другой стороны, xrange создает объект, который генерирует каждое число в последовательности по требованию, т.е. по мере итерации. Это называется «ленивой» генерацией, и она более эффективна по памяти, особенно для больших диапазонов.

Вот пример:

for i in range(0, 10000000):
   pass

Против

for i in xrange(0, 10000000):
   pass

В первом случае, range создаст список из 10 миллионов элементов и сохранит его в памяти, в то время как xrange создаст только одно значение за раз, существенно экономя память.

Важно отметить, что в Python 3 функция xrange была упразднена, и функция range теперь работает так же, как и xrange в Python 2. Это было сделано для упрощения языка и улучшения эффективности использования памяти.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий