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, transpose

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, zip_offset, zip_equal, zip_broadcast, flatten, roundrobin, prepend, value_chain, partial_product

Summarizing

ilen, unique_to_each, sample, consecutive_groups, run_length, map_reduce, join_mappings, exactly_n, is_sorted, all_equal, all_unique, 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, 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, factor, is_prime, nth_prime, matmul, polynomial_from_roots, polynomial_derivative, polynomial_eval, sieve, sum_of_squares, totient

Combinatorics

distinct_permutations, distinct_combinations, circular_shifts, partitions, set_partitions, product_index, combination_index, permutation_index, combination_with_replacement_index, gray_product, outer_product, powerset, powerset_of_sets, random_product, random_permutation, random_combination, random_combination_with_replacement, nth_product, nth_permutation, nth_combination, nth_combination_with_replacement

Wrapping

always_iterable, always_reversible, countable, consumer, with_iter, iter_except

Others

locate, rlocate, replace, numeric_range, side_effect, iterate, loops, difference, make_decorator, SequenceView, time_limited, map_if, iter_index, consume, tabulate, repeatfunc, reshape 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

more-itertools-10.6.0.tar.gz (125.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

more_itertools-10.6.0-py3-none-any.whl (63.0 kB view details)

Uploaded Python 3

File details

Details for the file more-itertools-10.6.0.tar.gz.

File metadata

  • Download URL: more-itertools-10.6.0.tar.gz
  • Upload date:
  • Size: 125.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.7

File hashes

Hashes for more-itertools-10.6.0.tar.gz
Algorithm Hash digest
SHA256 2cd7fad1009c31cc9fb6a035108509e6547547a7a738374f10bd49a09eb3ee3b
MD5 48da05632079828fd2e89e238192bb69
BLAKE2b-256 883b7fa1fe835e2e93fd6d7b52b2f95ae810cf5ba133e1845f726f5a992d62c2

See more details on using hashes here.

File details

Details for the file more_itertools-10.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for more_itertools-10.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6eb054cb4b6db1473f6e15fcc676a08e4732548acd47c708f0e179c2c7c01e89
MD5 6d7680b7de22904ddff6e2dedbc1579b
BLAKE2b-256 23620fe302c6d1be1c777cab0616e6302478251dfbf9055ad426f5d0def75c89

See more details on using hashes here.

Release history Release notifications | RSS feed

11.1.0

2 files

11.0.2

2 files

11.0.1

2 files

11.0.0

2 files

10.8.0

2 files

10.7.0

2 files

This release

10.6.0 This release

2 files

10.5.0

2 files

10.4.0

2 files

10.3.0

2 files

10.2.0

2 files

10.1.0

2 files

10.0.0

2 files

9.1.0

2 files

9.0.0

2 files

8.14.0

2 files

8.13.0

2 files

8.12.0

2 files

8.11.0

2 files

8.10.0

2 files

8.9.0

2 files

8.8.0

2 files

8.7.0

2 files

8.6.0

2 files

8.5.0

2 files

8.4.0

2 files

8.3.0

2 files

8.2.0

2 files

8.1.0

2 files

8.0.2

2 files

8.0.1

2 files

8.0.0

2 files

7.2.0

2 files

7.1.0

2 files

7.0.0

2 files

6.0.0

2 files

5.0.0

3 files

4.3.0

3 files

4.2.0

3 files

4.1.0

3 files

4.0.1

3 files

4.0.0

3 files

3.2.0

3 files

3.1.0

3 files

3.0.0

3 files

2.6.0

3 files

2.5.0

3 files

2.4.1

1 file

2.4

1 file

2.3

1 file

2.2

1 file

2.1

1 file

2.0

1 file

1.1

1 file

1.0

1 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