On converting enumerate
object becomes empty:
myTuple = (1, 2, 3)
myEnum = enumerate(myTuple)
print(myEnum)
print(list(myEnum))
print(myEnum)
print(list(myEnum))
On converting enumerate
object becomes empty:
myTuple = (1, 2, 3)
myEnum = enumerate(myTuple)
print(myEnum)
print(list(myEnum))
print(myEnum)
print(list(myEnum))
enumerate
returns an object that you can iterate once. That uses it up.
If you want to enumerate a sequence multiple times, you can call enumerate
multiple times:
for i,x in enumerate(my_items):
print(i,x)
for i,x in enumerate(my_items):
print(i,x)
or you convert the enumerate object to a list, and then iterate that multiple times:
enumerated_items = list(enumerate(my_items))
for i,x in enumerated_items:
print(i,x)
for i,x in enumerated_items:
print(i,x)
What you can't do is iterate the enumerate object itself multiple times:
e = enumerate(my_items):
for i,x in e:
print(i,x)
for i,x in e:
print(i,x) # won't happen
because the enumerate object is used up by the first iteration.
In this particular question, passing an enumerate object to list
is equivalent to iterating through it and adding each item to a list, so that also uses up the enumerate object.