Функции range() и xrange() в Python
range() является универсальной функцией питона для создания списков (list) содержащих арифметическую прогрессию. Чаще всего она используется в циклах for. Функция range() может принимать от одного до трех агрументов, при этом аргументами должны быть целые числа (int). range(старт,
- так выглядит стандартный вызов функции range() в Python. По умолчанию стоп
, шаг
)старт
равняется нулю, шаг
единице.
Возвращает список целых чисел в форме [старт, старт + шаг, старт + шаг*2...]
. Если шаг
положительное число, последним элементом списка будет наибольшее старт + i * шаг
меньшее числа стоп
. Если шаг
отрицательное число, то последний элемент будет наименьшее старт + i * шаг
большее числа стоп
. Шаг
не должен равняться нулю, иначе возникнет ValueError.
Примеры использований функции range() в Python:
>>> range(7) [0, 1, 2, 3, 4, 5, 6] >>> range(1,8) [1, 2, 3, 4, 5, 6, 7] >>> range(0, 20, 5) [0, 5, 10, 15] >>> range(0, -7, -1) [0,-1,-2,-3,-4,-5,-6] >>> range(1, 0) []
Функция xrange() в Python очень похожа на функцию range() за тем лишь исключением, что вместо списка создает объект xrange. Производит те же элементы, что и range(), но не сохраняет их. Преимущества использования xrange() вместо range() заметны лишь при при работе с огромным количеством элементов или в ситуации, когда сами по себе созданные элементы нами не используются, нам не нужно изменять их или порядок в котором они расположены.
Например, вот такая команда приведет к MemoryError
>>> my_list = range(999999999) Traceback (most recent call last): File "<stdin>", line 1, in <module> MemoryError
В то время, как xrange() создаст нужный объект.
>>> my_list = xrange(999999999) >>>
P.S. В Python версии 3.х функция range() ведет себя как xrange() во второй версии питона, а функция xrange() убрана вовсе.