make 'enumerate_reversed()' work with generators (#2795)

This commit is contained in:
Mike Fährmann
2022-08-01 14:08:44 +02:00
parent 033faf67ec
commit dd3a6a9fd1
2 changed files with 43 additions and 5 deletions

View File

@@ -161,13 +161,16 @@ def delete_items(obj, keys):
def enumerate_reversed(iterable, start=0, length=None):
"""Enumerate 'iterable' and return its elements in reverse order"""
start -= 1
if length is None:
length = len(iterable)
return zip(
range(length - start, start, -1),
reversed(iterable),
)
try:
iterable = zip(range(start-1+length, start-1, -1), reversed(iterable))
except TypeError:
iterable = list(zip(range(start, start+length), iterable))
iterable.reverse()
return iterable
def number_to_string(value, numbers=(int, float)):