itertools ######### Classes ------- .. table:: :widths: 40 60 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`iterator_facade ` | | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`iterator_facade\ ` | CRTP base class for various iterator types in itertools. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`sentinel_t ` | Generic sentinel type that can be used to mark the end of a range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`enum_iter ` | Iterator for an itertools::enumerated range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`enumerated ` | Represents an enumerated range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`prod_iter ` | Iterator for a itertools::multiplied (cartesian product) range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`multiplied ` | Represents a cartesian product of ranges. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`range ` | A lazy range of integers that mimics a Python range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`sliced ` | Represents a sliced range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`stride_iter ` | Iterator for a itertools::strided range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`strided ` | Represents a strided range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`transform_iter ` | Iterator for a itertools::transformed range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`transformed ` | Represents a transformed range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`zip_iter ` | Iterator for a itertools::zipped range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ | :ref:`zipped ` | Represents a zipped range. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ .. toctree:: :hidden: itertools/iterator_facade itertools/iterator_facadeLTIter,Value,std::forward_iterator_tag,Reference,DifferenceGT itertools/sentinel_t itertools/enum_iter itertools/enumerated itertools/prod_iter itertools/multiplied itertools/range itertools/sliced itertools/stride_iter itertools/strided itertools/transform_iter itertools/transformed itertools/zip_iter itertools/zipped Functions --------- .. table:: :widths: 40 60 +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`make_sentinel ` | Create an itertools::sentinel_t from an iterator using template type deduction. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`enumerate ` | Lazy-enumerate a given range (similar to Python's enumerate). | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`product ` | Lazy-multiply a given number of ranges by forming their cartesian product. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`make_product ` | Create a cartesian product range from an array of ranges. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`product_range ` | Create a cartesian product range of integer ranges from given integers. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`foreach ` | Apply a function to every element of an integer itertools::range. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`distance ` | Calculate the distance between two iterators. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`make_vector_from_range ` | Create a vector from a range. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`chunk_range ` | Given an integer range `[first, last)`, divide it as equally as possible into N chunks. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`slice ` | Lazy-slice a given range. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`stride ` | Lazy-stride through a given range. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`transform ` | Lazy-transform a given range by applying a unary callable object to every element of the original range. | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ | :ref:`zip ` | Lazy-zip ranges together (similar to Python's zip). | +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ .. toctree:: :hidden: itertools/make_sentinel itertools/enumerate itertools/product itertools/make_product itertools/product_range itertools/foreach itertools/distance itertools/make_vector_from_range itertools/chunk_range itertools/slice itertools/stride itertools/transform itertools/zip