Skip to content

Commit 893ef46

Browse files
committed
-
1 parent 21fbffc commit 893ef46

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

source_py3/python_toolbox/cute_iter_tools.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ def _shorten(iterable, n):
124124
raise StopIteration
125125

126126

127-
def enumerate(reversible, reverse_index=False, lazy_tuple=False):
127+
def enumerate(iterable, reverse_index=False, lazy_tuple=False):
128128
'''
129129
Iterate over `(i, item)` pairs, where `i` is the index number of `item`.
130130
@@ -135,7 +135,7 @@ def enumerate(reversible, reverse_index=False, lazy_tuple=False):
135135
136136
If `lazy_tuple=True`, returns a `LazyTuple` rather than an iterator.
137137
'''
138-
iterator = _enumerate(reversible=reversible, reverse_index=reverse_index)
138+
iterator = _enumerate(iterable=iterable, reverse_index=reverse_index)
139139

140140
if lazy_tuple:
141141
from python_toolbox import nifty_collections # Avoiding circular import.
@@ -144,13 +144,17 @@ def enumerate(reversible, reverse_index=False, lazy_tuple=False):
144144
return iterator
145145

146146

147-
def _enumerate(reversible, reverse_index):
147+
def _enumerate(iterable, reverse_index):
148148
if reverse_index is False:
149-
return builtins.enumerate(reversible)
149+
return builtins.enumerate(iterable)
150150
else:
151-
my_list = list(builtins.enumerate(reversed(reversible)))
152-
my_list.reverse()
153-
return my_list
151+
from python_toolbox import sequence_tools
152+
try:
153+
length = sequence_tools.get_length(iterable)
154+
except AttributeError:
155+
iterable = revenifty_collections.LazyTuple(iterable)
156+
length = len(iterable)
157+
return zip(range(length - 1, -1, -1), iterable)
154158

155159

156160
def is_iterable(thing):

0 commit comments

Comments
 (0)