Skip to main content

More Itertools

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

random_ordered_range

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.

Some notes on contributing:

  • In general, please make an issue before opening a pull request. Not all will be accepted, so please save yourself the trouble of creating a PR.

  • Exception: if you’re fixing a documentation typo, you can skip making an issue.

  • If you’ve spotted a bug yourself, please make an issue with a description of the problem it causes in your own words.

  • If you’re using a coding assistant or other automated tool to identify bugs, issues you create need to show examples of production code is affected by the problem. Sanitized code is OK; contrived examples aren’t.

  • Issues and pull requests from coding assistants or other automated tools that don’t follow these instructions will be closed summarily.

Version History

The version history can be found in documentation.

Metadata

Release files for more-itertools 11.2.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.2.0
File Size Uploaded
more_itertools-11.2.0.tar.gz 75.9 kB Details

Built distribution (wheel)

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

Total release size: 150.3 kB

Release files / more_itertools-11.2.0.tar.gz

Download URL more_itertools-11.2.0.tar.gz
Size 75.9 kB
Tags Source
SHA-256 checksum
How to use checksums
59960f488835254863a857eb501f69e4ec92fdc8822f098c0f48dba530afd487
BLAKE2b-256 checksum
How to use checksums
55e58735dc589d9e3571e76cd684e7763dc0fcc940b811f71640410458749689
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.3

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

Download URL more_itertools-11.2.0-py3-none-any.whl
Size 74.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e4c522352a24664c974d0be8382944107ae638281a06391a5a538366b5707fe5
BLAKE2b-256 checksum
How to use checksums
d4f786f27473377a8ebdbdfedec5e62e87fbc24c4c88ed0a2a5ea0a12ee2229b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.3

Release history Release notifications | RSS feed

11.2.1

2 release files

This release

11.2.0 This release

2 release files

11.1.0

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