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

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

Uploaded Source

Built Distribution

more_itertools-10.4.0-py3-none-any.whl (60.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: more-itertools-10.4.0.tar.gz
  • Upload date:
  • Size: 120.8 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.4.0.tar.gz
Algorithm Hash digest
SHA256 fe0e63c4ab068eac62410ab05cccca2dc71ec44ba8ef29916a0090df061cf923
MD5 5f8493c4598c6fb7dc3cb8572f13c0b4
BLAKE2b-256 920dad6a82320cb8eba710fd0dceb0f678d5a1b58d67d03ae5be14874baa39e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for more_itertools-10.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f7d9f83a0a8dcfa8a2694a770590d98a67ea943e3d9f5298309a484758c4e27
MD5 529a255063d8c6015855fa31d87b3354
BLAKE2b-256 d80b6a51175e1395774449fca317fb8861379b7a2d59be411b8cce3d19d6ce78

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