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, is_prime, matmul, multinomial, nth_prime, 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.

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

Uploaded Source

Built Distribution

more_itertools-10.7.0-py3-none-any.whl (65.3 kB view details)

Uploaded Python 3

File details

Details for the file more_itertools-10.7.0.tar.gz.

File metadata

  • Download URL: more_itertools-10.7.0.tar.gz
  • Upload date:
  • Size: 127.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.7

File hashes

Hashes for more_itertools-10.7.0.tar.gz
Algorithm Hash digest
SHA256 9fddd5403be01a94b204faadcff459ec3568cf110265d3c54323e1e866ad29d3
MD5 62eb0a088624e979ae594a2de094ca1c
BLAKE2b-256 cea0834b0cebabbfc7e311f30b46c8188790a37f89fc8d756660346fe5abfd09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for more_itertools-10.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d43980384673cb07d2f7d2d918c616b30c659c089ee23953f601d6609c67510e
MD5 1a46ae19bd01372e9c54874fe9ded040
BLAKE2b-256 2b9f7ba6f94fc1e9ac3d2b853fdff3035fb2fa5afbed898c4a72b8a020610594

See more details on using hashes here.

Supported by

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