range (диапазон)
Диапазон — неизменяемая последовательность целых чисел.
range(stop) | range(start, stop[, step])
-> range
start=0 -- Целое число, которое должно явиться началом последовательности.
stop -- Целое число, на котором должно завершиться формирование последовательности. Не входит в последовательность.
step=1 -- Целое число — шаг, с которым должна формироваться последовательность. При попытке задать нуль, возбуждается ValueError.
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
На заметку
Зарегистрированные пользователи могут публиковать свои мнения относительно Книг, Видео, Статей других авторов и прочего в разделе Обсуждений.