In Python, the range() function is used to create a sequence of numbers, commonly used in for loops.
Function Syntax
Exists in three forms:
range(stop)
range(start, stop)
range(start, stop, step)
- Generates integer sequence from
0tostop - 1with step1. - Generates integer sequence from
starttostop - 1with step1. - Generates integer sequence from
starttostop - 1with stepstep.
When the first parameter is greater than the second, range() still returns a sequence, but the elements go from the first parameter to the second parameter in decreasing order with a negative step.
Returns a range object.
range() Function Examples
for i in range(5):
print(i, end=' ')
# Output: 0 1 2 3 4
print()
for i in range(2, 5):
print(i, end=' ')
# Output: 2 3 4
print()
for i in range(1, 10, 2):
print(i, end=' ')
# Output: 1 3 5 7 9
print()
for i in range(10, 0, -2):
print(i, end=' ')
# Output: 10 8 6 4 2
print()
range objects are lazy, not generating all numbers immediately, only when needed:
r = range(1000000) # Created immediately, uses little memory
print(type(r)) # <class 'range'>
# Numbers actually generated only now
lst = list(r)
print(type(lst)) # <class 'list'>
# Memory usage comparison
import sys
print(f"range object size: {sys.getsizeof(r)} bytes") # About 48 bytes
print(f"list object size: {sys.getsizeof(lst)} bytes") # About 8000056 bytes
Common attributes and methods of range objects:
r = range(2, 10, 2)
# Access elements
print(r[0]) # 2
print(r[2]) # 6
print(r[-1]) # 8
# Length
print(len(r)) # 4
# Membership check
print(6 in r) # True
print(7 in r) # False
# Index
print(r.index(6)) # 2
# Count
print(r.count(6)) # 1