CP

Tips & Tricks

isslice(iterator, start, end)

to slice iterators

def values(n: int) -> Iterator[int]:
    for i in range(n):
        yield i

islice(values(100), 20, 31) # -> [20, 21, 22, ..., 30]

Negative Indexing

A[-k:] == A[n - k:] where n = len(A)

A = [1, 2, 3, 4, 5]  # k = 2
A[-2:]              # [4, 5] (last 2)
A[:-2]              # [1, 2, 3] (all except last 2)
A[-2:] + A[:-2]     # [4, 5, 1, 2, 3] (rotate right by 2)

On this page