awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
more-itertools avatar

more-itertools/more-itertools

0
View on GitHub↗
4,074 stars·322 forks·Python·MIT·15 viewsmore-itertools.rtfd.io↗

More Itertools

more-itertools is an extension library for the Python itertools module. It serves as a toolkit for manipulating iterables, providing a wide range of routines for data transformation, combinatorial generation, and iterator state management.

The library distinguishes itself through advanced state management and complex sequence generation. It provides capabilities for peeking at future elements, seeking within sequences, and producing unique permutations, combinations, and set partitions from collections that may contain duplicate elements.

Its broader capability surface covers data processing tasks such as recursive flattening, grouping, padding, and reshaping of data streams. It also includes utilities for stream merging, windowing for local neighborhood analysis, and thread-safe iteration synchronization.

The project further provides specialized routines for numerical sequence processing, including matrix multiplication, discrete linear convolution, and Fourier transforms.

Features

  • Itertools Extensions - Extends the Python itertools module with advanced routines for data transformation and state management.
  • Standard Library Extensions - Serves as a comprehensive extension library for the standard Python itertools module.
  • Collection Element Transformations - Implements higher-order functions for mapping, filtering, and reducing iterable elements.
  • Iterable Transformation Utilities - Provides utilities to map, filter, group, and combine iterables for data processing.
  • Iterator State Wrappers - Wraps iterators in stateful classes to provide advanced capabilities like peeking, seeking, and consumption tracking.
  • Iterable Chunking - Transforms flat collections into different structures such as sliding windows, chunks, or matrices.
  • Iterator State Analysis Tools - Inspects iterator state and performs lookaheads or lookbacks without consuming the underlying data stream.
  • Iterator Peek and Seek - Provides mechanisms for looking ahead at upcoming elements without consuming the iterator.
  • Lazy Evaluation - Extensively utilizes Python generators to implement lazy evaluation for memory-efficient data processing.
  • Iterable Flatteners - Recursively collapses nested sequences or iterators into a single flat stream of elements.
  • Iterable Lookahead and Lookback Managers - Provides the ability to access preceding or succeeding elements in a sequence without consuming the entire iterator.
  • Combinatorial Generators - Provides efficient algorithms for generating all possible permutations and combinations of a set.
  • Unique Subset Generation - Generates unique subsets of a specific length from collections that may contain duplicate elements.
  • Permutation Generation Algorithms - Produces unique permutations of elements while correctly handling and avoiding duplicates from repeated values.
  • Iterable Grouping - Provides a wide array of utilities to partition standard iterables into groups based on size or content.
  • Iterable Splitting - Divides collections into multiple parts based on markers, predicates, or fixed lengths.
  • First and Last Element Accessors - Provides utilities to retrieve the first or last element of a collection.
  • Sequence Pattern Replacements - Implements a mechanism to substitute items or subsequences that match a predicate with elements from another collection.
  • Iterable Interleaving and Zipping - Merges multiple collections by interleaving elements, broadcasting values, or pairing them with offsets.
  • Multi-Iterable Interleaver - Combines several collections by yielding one element from each in turn using sequential, even, or random distributions.
  • Adjacent Match Identification - Marks items that satisfy a predicate or are within a specified distance of a matching item.
  • Element Shifting - Implements circular shifting (rolling) of sequence elements with wrap-around behavior.
  • Matrix Multiplication Utilities - Multiplies two matrices using numeric types including complex numbers and fractions.
  • Indexed Cycle Generation - Repeats a collection for a set number of cycles while yielding the current cycle index.
  • Balanced Splitting - Implements logic to break collections into smaller sub-collections of a specified or balanced size.
  • Consecutive Item Grouping - Produces groups of items that are considered adjacent based on a custom ordering function.
  • Element Staggering - Produces tuples where elements are offset from the original sequence by specified distances.
  • Item Index Location - Produces the indices of items that satisfy a predicate using forward or reverse searches.
  • Item Search and Location - Finds the index, position, or first occurrence of specific values within a collection.
  • Iterable Neighborhood Analyzers - Extracts overlapping or non-overlapping contiguous subsequences to analyze local neighborhoods of elements.
  • Iterable Padding - Appends fill values to a sequence until it reaches a minimum length or a specific size multiple.
  • Iterable Property Analyzers - Provides utilities to analyze properties of sequences, such as whether they are sorted or contain unique elements.
  • Iterable Reversal - Caches elements of a non-reversible collection to allow yielding them in reverse order.
  • Iterable Selection - Extracts specific items or subsets from a sequence based on custom value or position criteria.
  • Iterable Summaries - Calculates counts, identifies extremes, and checks for sorting or equality across iterables.
  • Iterator Consumption Tracking - Wraps collections to maintain a running tally of how many items have been consumed.
  • Sequence Augmentations - Adds padding, inserts separators, or repeats elements to modify the structure of a data stream.
  • Sliding Window Generators - Produces overlapping or non-overlapping sequences of a fixed size to analyze neighboring elements.
  • Unique Element Identification - Identifies elements that appear exclusively in only one of several input collections.
  • Caching Iterators - Provides the ability to traverse forward-only iterators in reverse by caching elements in an internal buffer.
  • Iterator Lookahead Buffers - Implements buffering mechanisms to allow peeking at future elements in a sequence without consuming them.
  • Partial Products - Generates partial products to explore combinations across multiple collections without producing every possible pair.
  • Contiguous Subsequence Generators - Generates every possible contiguous subsequence and their corresponding positions from a sliceable collection.
  • Signal Convolutions - Performs discrete linear convolution of a signal and a kernel for tasks like moving averages.
  • Fourier Transforms - Computes the Discrete Fourier Transform and its inverse for sequences of complex numbers.
  • Mathematical Sequence Processors - Performs discrete linear convolutions, Fourier transforms, and matrix multiplication on sequences of numeric or complex data.
  • Non-Indexable Iterable Sampling - Returns a random subset of elements from generators or sets using weights and repetitions.
  • Online Running Statistics - Produces cumulative minimums, maximums, means, or medians from a sequence or sliding window.
  • Numerical Sequence Processors - Implements specialized routines for matrix multiplication, discrete linear convolution, and Fourier transforms.
  • Set Partitions - Produces all possible ways to partition a collection into a fixed number of non-empty subsets.
  • Stream Merging - Interleaves elements from multiple streams in fixed or non-deterministic orders.
  • Stream Element Interspersing - Inserts fixed values or sequences at regular intervals between elements of an iterable.
  • Collection Element Counters - Calculates the total number of elements in an iterable by fully consuming the stream.
  • Thread-Safe Iterator Wrappers - Synchronizes access to non-concurrent iterators to ensure safe sequential processing across multiple threads.
  • Functional Programming - Extends standard library iteration tools with additional routines.
  • General Utilities - Extended routines for operating on iterables.

Star history

Star history chart for more-itertools/more-itertoolsStar history chart for more-itertools/more-itertools

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does more-itertools/more-itertools do?

more-itertools is an extension library for the Python itertools module. It serves as a toolkit for manipulating iterables, providing a wide range of routines for data transformation, combinatorial generation, and iterator state management.

What are the main features of more-itertools/more-itertools?

The main features of more-itertools/more-itertools are: Itertools Extensions, Standard Library Extensions, Collection Element Transformations, Iterable Transformation Utilities, Iterator State Wrappers, Iterable Chunking, Iterator State Analysis Tools, Iterator Peek and Seek.

What are some open-source alternatives to more-itertools/more-itertools?

Open-source alternatives to more-itertools/more-itertools include: erikrose/more-itertools — more-itertools is a Python iterable utility library providing advanced functions for manipulating, filtering, and… apple/swift-algorithms — Swift Algorithms is a library of sequence and collection algorithms for Swift, providing operations for splitting,… azl397985856/leetcode — This project is a curated educational resource and solution repository for algorithmic challenges, specifically… xtensor-stack/xtensor — xtensor is a C++ multidimensional array library for numerical computing that provides N-dimensional containers with an… mahmoud/boltons — Boltons is a comprehensive utility toolkit and extension of the Python standard library. It provides a collection of… boostorg/boost — Boost is a collection of portable, high-performance source libraries that extend the C++ standard library. It provides…

Open-source alternatives to More Itertools

Similar open-source projects, ranked by how many features they share with More Itertools.
  • erikrose/more-itertoolserikrose avatar

    erikrose/more-itertools

    4,074View on GitHub↗

    more-itertools is a Python iterable utility library providing advanced functions for manipulating, filtering, and transforming data sequences. It serves as a data stream processing toolkit and a set of utilities for iterator state management, extending the capabilities of the standard Python itertools module. The library includes a combinatorial math toolkit for generating permutations, combinations, and powersets, alongside routines for number theory calculations and matrix operations. It also provides tools for stream state management, allowing users to peek at upcoming elements or seek wit

    Python
    View on GitHub↗4,074
  • apple/swift-algorithmsapple avatar

    apple/swift-algorithms

    6,293View on GitHub↗

    Swift Algorithms is a library of sequence and collection algorithms for Swift, providing operations for splitting, cycling, combining, and sampling collections with lazy evaluation. It extends Swift's standard library with algorithms that work across all types conforming to Sequence and Collection protocols, enabling efficient data processing without intermediate storage. The library specializes in combinatorial enumeration, generating all possible permutations, combinations, and product sequences from collections for testing and exploration. It also includes utilities for splitting collectio

    Swiftalgorithmiteratoritertools
    View on GitHub↗6,293
  • azl397985856/leetcodeazl397985856 avatar

    azl397985856/leetcode

    55,758View on GitHub↗

    This project is a curated educational resource and solution repository for algorithmic challenges, specifically focused on LeetCode problems. It serves as a technical reference for common data structures and algorithmic patterns, providing verified code implementations across multiple programming languages alongside detailed logic and complexity analysis. The repository functions as a comprehensive study guide for competitive programming and technical interview preparation. It includes specialized learning tools such as an Anki flashcard dataset for spaced repetition and a browser extension t

    JavaScriptalgoalgorithmalgorithms
    View on GitHub↗55,758
  • xtensor-stack/xtensorxtensor-stack avatar

    xtensor-stack/xtensor

    3,748View on GitHub↗

    xtensor is a C++ multidimensional array library for numerical computing that provides N-dimensional containers with an interface mirroring the NumPy API. It utilizes a lazy evaluation expression engine to defer numerical computations until assignment, which minimizes memory allocations and intermediate copies. The library features a foreign memory array adaptor that allows it to wrap external buffers, such as NumPy arrays, to perform numerical operations in-place without duplicating data. It further optimizes performance through lazy broadcasting and a system that manages the lifetime of temp

    C++c-plus-plus-14multidimensional-arraysnumpy
    View on GitHub↗3,748
  • See all 30 alternatives to More Itertools→