Skip to main content
https://readthedocs.org/projects/more-itertools/badge/?version=latest

Python’s itertools library is a gem - you can compose elegant solutions for a variety of problems with the functions it provides. In more-itertools we collect additional building blocks, recipes, and routines for working with Python iterables.

Grouping

chunked, ichunked, chunked_even, sliced, constrained_batches, distribute, divide, split_at, split_before, split_after, split_into, split_when, bucket, unzip, batched, grouper, partition

Lookahead and lookback

spy, peekable, seekable

Windowing

windowed, substrings, substrings_indexes, stagger, windowed_complete, pairwise, triplewise, sliding_window, subslices

Augmenting

count_cycle, intersperse, padded, repeat_each, mark_ends, repeat_last, adjacent, groupby_transform, pad_none, ncycles

Combining

collapse, sort_together, interleave, interleave_longest, interleave_evenly, interleave_randomly, zip_offset, zip_broadcast, flatten, roundrobin, prepend, value_chain, partial_product

Concurrency

concurrent_tee, serialize, synchronized

Summarizing

ilen, unique_to_each, sample, consecutive_groups, run_length, map_reduce, join_mappings, exactly_n, is_sorted, all_equal, all_unique, argmin, argmax, minmax, first_true, quantify, iequals

Selecting

islice_extended, first, last, one, only, strictly_n, strip, lstrip, rstrip, filter_except, map_except, filter_map, iter_suppress, nth_or_last, extract, unique_in_window, before_and_after, nth, take, tail, unique_everseen, unique_justseen, unique, duplicates_everseen, duplicates_justseen, classify_unique, longest_common_prefix, takewhile_inclusive

Math

dft, idft, convolve, dotproduct, matmul, polynomial_from_roots, polynomial_derivative, polynomial_eval, reshape, sum_of_squares, transpose

Integer math

factor, is_prime, multinomial, nth_prime, sieve, totient

Statistics

running_min, running_max, running_mean, running_median, running_statistics

Combinatorics

circular_shifts, derangements, gray_product, outer_product, partitions, set_partitions, powerset, powerset_of_sets

distinct_combinations, distinct_permutations

combination_index, combination_with_replacement_index, permutation_index, product_index

nth_combination, nth_combination_with_replacement, nth_permutation, nth_product

random_combination, random_combination_with_replacement, random_derangement, random_permutation, random_product

Wrapping

always_iterable, always_reversible, countable, consumer, iter_except, sized_iterator with_iter

Others

locate, rlocate, replace, numeric_range, side_effect, iterate, loops, difference, make_decorator, SequenceView, time_limited, map_if, iter_index, consume, tabulate, repeatfunc, doublestarmap

Getting started

To get started, install the library with pip:

pip install more-itertools

The recipes from the itertools docs are included in the top-level package:

>>> from more_itertools import flatten
>>> iterable = [(0, 1), (2, 3)]
>>> list(flatten(iterable))
[0, 1, 2, 3]

Several new recipes are available as well:

>>> from more_itertools import chunked
>>> iterable = [0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> list(chunked(iterable, 3))
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]

>>> from more_itertools import spy
>>> iterable = (x * x for x in range(1, 6))
>>> head, iterable = spy(iterable, n=3)
>>> list(head)
[1, 4, 9]
>>> list(iterable)
[1, 4, 9, 16, 25]

For the full listing of functions, see the API documentation.

Development

more-itertools is maintained by @erikrose and @bbayles, with help from many others. If you have a problem or suggestion, please file a bug or pull request in this repository. Thanks for contributing!

Version History

The version history can be found in documentation.

Release files for more-itertools 11.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for more-itertools 11.1.0
File Size Uploaded
more_itertools-11.1.0.tar.gz 145.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for more-itertools 11.1.0
File Interpreter ABI Platform
more_itertools-11.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 218.0 kB

Release files / more_itertools-11.1.0.tar.gz

Download URL more_itertools-11.1.0.tar.gz
Size 145.8 kB
Tags Source
SHA-256 checksum
How to use checksums
48e8f4d9e7e5878571ecf6f2b4e57634f93cd474cc8cfbd2376f2d11b396e30d
BLAKE2b-256 checksum
How to use checksums
de1df4da6f02cdffe04d6362210b807146a26044c88d839208aec273bb0d9184
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / more_itertools-11.1.0-py3-none-any.whl

Download URL more_itertools-11.1.0-py3-none-any.whl
Size 72.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4b65538ae22f6fed0ce4874efd317463a7489796a0939fa66824dd542125a192
BLAKE2b-256 checksum
How to use checksums
e83d1087453384dbde46a8c7f9356eead2c58be8a7bf156bca40243377c85715
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release history Release notifications | RSS feed

This release

11.1.0 This release

2 release files

10.7.0

2 release files

10.6.0

2 release files

10.3.0

2 release files

10.0.0

2 release files

9.1.0

2 release files

9.0.0

2 release files

8.12.0

2 release files

8.10.0

2 release files

8.9.0

2 release files

8.8.0

2 release files

8.7.0

2 release files

8.6.0

2 release files

8.5.0

2 release files

8.4.0

2 release files

8.3.0

2 release files

8.2.0

2 release files

8.1.0

2 release files

8.0.2

2 release files

8.0.1

2 release files

8.0.0

2 release files

7.2.0

2 release files

7.1.0

2 release files

7.0.0

2 release files

6.0.0

2 release files

5.0.0

3 release files

4.3.0

3 release files

4.2.0

3 release files

4.1.0

3 release files

4.0.1

3 release files

4.0.0

3 release files

3.2.0

3 release files

3.1.0

3 release files

3.0.0

3 release files

2.6.0

3 release files

2.5.0

3 release files

2.4.1

1 release file

2.4

1 release file

2.3

1 release file

2.2

1 release file

2.1

1 release file

2.0

1 release file

1.1

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page