Reverse enumerate.
renumerate(sequence, start=len(sequence)-1, end=0):
Return an enumerate object.
sequence must be an object that has a __reversed__() method or supports the
sequence protocol (the __len__() method and the __getitem__() method with
integer arguments starting at 0).
The __next__() method of the iterator returned by renumerate() returns a tuple
containing a count (from start which defaults to len(sequence) - 1 or ends at
end which defaults to 0 - but not both) and the values obtained from reverse
iterating over sequence.
>>> from renumerate import renumerate
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(renumerate(seasons))
[(3, 'Winter'), (2, 'Fall'), (1, 'Summer'), (0, 'Spring')]
>>> list(renumerate(seasons, start=4))
[(4, 'Winter'), (3, 'Fall'), (2, 'Summer'), (1, 'Spring')]
>>> list(renumerate(seasons, end=2))
[(5, 'Winter'), (4, 'Fall'), (3, 'Summer'), (2, 'Spring')]
Equivalent to:
def renumerate(sequence, start=None, end=None):
if start is not None and end is not None:
raise TypeError("renumerate() only accepts start argument or end argument"
" - not both.")
if start is None: start = len(sequence) - 1
if end is None: end = 0
n = start + end
for elem in reversed(sequence):
yield n, elem
n -= 1
Prerequisites:
- Python 3.9 or higher
- pip and setuptools
To install run:
python -m pip install --upgrade renumerate
Prerequisites:
-
Development is strictly based on tox. To install it run:
python -m pip install --upgrade tox
Visit Development page.
Installation from sources:
clone the sources:
git clone https://github.com/karpierz/renumerate.git renumerate
and run:
python -m pip install ./renumerate
or on development mode:
python -m pip install --editable ./renumerate
Copyright (c) 2016-2024 Adam KarpierzLicensed under the zlib/libpng LicensePlease refer to the accompanying LICENSE file.
- Adam Karpierz <adam@karpierz.net>