PYTHON

Python range() Function: Generating Sequences in Python

The range() function in Python generates a sequence of numbers within a specified range.

How to Use the Python range() Function

range() is a built-in function in Python that takes three parameters: start, stop, and step. start is the beginning of the sequence, stop specifies where to end, and step defines the increment between numbers. With a single argument, range() starts at 0, increments by 1, and stops at the specified value.

The range() function returns a sequence of integers.

range(start, stop, step)
  • start: The starting value of the sequence, including the specified number.
  • stop: The ending value of the sequence, excluding the specified number.
  • step: The amount by which the sequence increments (1 by default).

Basic Usage

for i in range(5):
    print(i)
# Outputs: 0 1 2 3 4

When to Use the Python range() Function

The range() function is versatile for many programming tasks.

Python For Loops With range()

Within for loops in Python, range() can control the number of iterations of the loop. This is useful when you need to repeat an action a specific number of times.

for i in range(5):
    print(i)
# Outputs: 0 1 2 3 4

Generating Sequences

With the range() function, you can generate sequences for other applications like creating indices for data structures. This is helpful in scenarios where you need to process elements by their position.

indices = list(range(5))
print(indices)
# Outputs: [0, 1, 2, 3, 4]

Creating a Reverse Range

You can use the range() function to generate ranges in reverse by providing a negative step. This can be particularly useful when you need to iterate over a sequence in the opposite order.

for i in range(10, 0, -1):
    print(i)
# Outputs: 10 9 8 7 6 5 4 3 2 1

Advanced Range Usage

You can also use range() for more specific increments, such as generating sequences with a step other than 1. This flexibility allows for customized sequences tailored to specific needs.

for i in range(0, 10, 2):
    print(i)
# Outputs: 0 2 4 6 8

Examples of Using Python range()

Creating Indices for Lists

Data processing tasks often need sequence numbers as indices for lists.

data = [10, 20, 30, 40, 50]
for index in range(len(data)):
    print(f"Index {index} has value {data[index]}")
# Outputs index and corresponding value

Using range() with Conditional Statements

Control loops and iterations conditionally with range().

total = 0
for i in range(10):
    if i % 2 == 0:  # Sum only even numbers
        total += i
print(total)
# Outputs: 20

Generating Custom Sequences

Use range() for creating customizable sequences for specific applications.

squares = [x**2 for x in range(1, 6)]
print(squares)
# Outputs: [1, 4, 9, 16, 25]

Handling Large Ranges

Efficiently generate and iterate over large number sequences.

large_sum = sum(range(1, 10001))
print(large_sum)
# Outputs: 50005000

Learn More About Python range() Function

Python Range + Range

The range() function returns an immutable sequence of integers. To add together two ranges, you need to convert the sequences into lists beforehand.

range1 = range(5)
range2 = range(5, 10)

# Convert to lists and concatenate
combined_list = list(range1) + list(range2)
print(combined_list)
# Outputs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Python Reverse Range

To reverse a range, you can also use the reversed() function with range(). Reversing a range can be useful when you need to iterate over a sequence in the opposite order, such as countdowns or reverse iterations.

reversed_range = list(reversed(range(1, 11)))
print(reversed_range)
# Outputs: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

Skipping Elements in a Range

You can skip elements in a range by specifying a step value greater than 1. This allows you to create sequences with intervals other than the default increment of 1, such as generating a sequence of every third number.

skipped_range = list(range(0, 20, 3))
print(skipped_range)
# Outputs: [0, 3, 6, 9, 12, 15, 18]

Floating Point Ranges

Although range() only supports integer values, you can create floating point ranges using custom functions.

def float_range(start, stop, step):
    while start < stop:
        yield float(start)
        start += step

for num in float_range(0.5, 2.0, 0.5):
    print(num)
# Outputs: 0.5 1.0 1.5

Python List Index Out of Range

Using the range() function to generate list indices can lead to IndexError errors. To prevent trying to access an index that’s out of range, create for loops with the list to iterate over instead of a range of indices. Alternatively, you can also catch errors using try and except.

example_list = [1, 2, 3]
for item in example_list:
	print(item)
	
try:
    for i in range(3):
        print(example_list[i])
except IndexError:
    print(f"Index {i} is out of range")
# Outputs: Index 3 is out of range

Inclusive Range in Python

Python ranges are exclusive of the stop value. Creating truly inclusive ranges requires extending stop by 1.

inclusive = list(range(1, 6))
print(inclusive)
# Outputs: [1, 2, 3, 4, 5]

Performance Considerations

For large sequences, range() provides an efficient, low-memory method of iterating, preferable over lists for intensive loops. This is particularly beneficial in scenarios where performance and memory usage are critical.

# Efficient memory usage with range()
for i in range(1000000):
    pass  # Performs a million iterations efficiently

Using xrange in Legacy Python

Although xrange was used in Python 2.x to create ranges efficiently, Python 3.x range() includes this functionality by default. This means range() in Python 3.x can handle large sequences efficiently without the need for xrange.

# Legacy Python 2.x
for i in xrange(10):
    print(i)
# In Python 3.x, use `range` directly
Learn Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2024 Mimo GmbH