Skip to content

islice

islice() extracts a slice from an iterator without consuming the entire iterator or materializing it into memory.

Basic Slicing with islice

Extract specific elements from an iterator using islice(iterable, start, stop, step).

from itertools import islice

numbers = range(10)

# Get elements from index 2 to 5
result1 = list(islice(numbers, 2, 5))
print(result1)

# Get first 4 elements
result2 = list(islice(numbers, 4))
print(result2)

# Get every 2nd element starting from index 1
result3 = list(islice(numbers, 1, None, 2))
print(result3)
[2, 3, 4]
[0, 1, 2, 3]
[1, 3, 5, 7, 9]

Practical Use Case

Use islice() to paginate through large datasets efficiently.

from itertools import islice

def paginate(iterable, page_size):
    it = iter(iterable)
    while True:
        page = list(islice(it, page_size))
        if not page:
            break
        yield page

# Paginate a range
data = range(10)
for i, page in enumerate(paginate(data, 3)):
    print(f"Page {i}: {page}")
Page 0: [0, 1, 2]
Page 1: [3, 4, 5]
Page 2: [6, 7, 8]
Page 3: [9]