Skip to main content

More routines for operating on iterables, beyond itertools

Project description

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

Summarizing

ilen, unique_to_each, sample, consecutive_groups, run_length, map_reduce, 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, nth_or_last, unique_in_window, before_and_after, nth, take, tail, unique_everseen, unique_justseen, duplicates_everseen, duplicates_justseen, longest_common_prefix

Combinatorics

distinct_permutations, distinct_combinations, circular_shifts, partitions, set_partitions, product_index, combination_index, permutation_index, powerset, random_product, random_permutation, random_combination, random_combination_with_replacement, nth_product, nth_permutation, nth_combination

Wrapping

always_iterable, always_reversible, countable, consumer, with_iter, iter_except

Others

locate, rlocate, replace, numeric_range, side_effect, iterate, difference, make_decorator, SequenceView, time_limited, map_if, consume, tabulate, repeatfunc polynomial_from_roots sieve

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.

Project details


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-9.0.0.tar.gz (104.2 kB view details)

Uploaded Source

Built Distribution

more_itertools-9.0.0-py3-none-any.whl (52.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: more-itertools-9.0.0.tar.gz
  • Upload date:
  • Size: 104.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for more-itertools-9.0.0.tar.gz
Algorithm Hash digest
SHA256 5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab
MD5 58f6fe36c3c94bbc569130df546dcfc9
BLAKE2b-256 13b3397aa9668da8b1f0c307bc474608653d46122ae0563d1d32f60e24fa0cbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for more_itertools-9.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41
MD5 a1e7988b2ae43bdad0c2376343356684
BLAKE2b-256 5d871ec3fcc09d2c04b977eabf8a1083222f82eaa2f46d5a4f85f403bf8e7b30

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page