Диапазон — неизменяемая последовательность целых чисел.
range(stop) | range(start, stop[, step])
-> range
start=0 -- Целое число, которое должно явиться началом последовательности.

stop -- Целое число, на котором должно завершиться формирование последовательности. Не входит в последовательность.

step=1 -- Целое число — шаг, с которым должна формироваться последовательность. При попытке задать нуль, возбуждается ValueError.

    type(range(3))  # class 'range'

list(range(5)) # [0, 1, 2, 3, 4]
list(range(1, 5)) # [1, 2, 3, 4]
list(range(0, 10, 3)) # [0, 3, 6, 9]
list(range(0, -5, -1)) # [0, -1, -2, -3, -4]
list(range(0)) # []
list(range(1, 0)) # []

Преимуществом данного типа по сравнению с обычным списком или кортежем, является то, что он занимает всегда одинаковое небольшое количество памяти вне зависимости от того, какой длины диапазон представляет. Это возможно благодаря тому, что в памяти хранятся только параметры, а значения вычисляются по мере необходимости.

Последовательности реализуют интерфейс collections.abc.Sequence ABC, и предоставляют такие возможности как проверка вхождения, поиск по индексу, срезы и отрицательную индексацию.

Внимание
Диапазоны, содержащие значения превышающие sys.maxsize поддерживаются, однако некоторые методы (например, len()) могут вызывать OverflowError.

Внимание
Проверка диапазонов на равенство при помощи == и != сравнивает их как последовательности. Это означает, что два диапазона равны, если они представляют одинаковую последовательность значений. Пример: range(0) == range(2, 1, 3) или range(0, 3, 2) == range(0, 4, 2).


Python 2


  • Вместо типа существует функция range(), возвращающая список.
  • Существует тип xrange, последователем дела которого является тип range из Python 3.

    type(range(3))  # type 'list'
type(xrange(3)) # type 'xrange'

Синонимы поиска: range (диапазон), диапазон, кфтпу, in range
В разделе «Sequence (последовательность)»: list (список) sequence.index str (строка) tuple (кортеж) xrange
На заметку
Зарегистрированные пользователи могут публиковать свои мнения относительно Книг, Видео, Статей других авторов и прочего в разделе Обсуждений.