0
does list change numerate? why the results are different?
a = enumerate(range(10)) b = enumerate(range(1,10)) c=list(zip(a,b)) print('c is') print(c) a = enumerate(range(10)) print(list(a)) b = enumerate(range(1,10)) print(list(b)) d=list(zip(a,b)) print('d is') print(d)
5 Réponses
+ 1
try in code playground
a = enumerate(range(10))
print(1,list(a)
)
print(2,a)
print(3,list(a))
a is iterator, by using list (a) you exhausted the iterator.
can also try
a = enumerate(range(10))
print(1,next(a)
)
print(2,list(a))
print(3,list(a))
+ 4
#That I understood, you need to have variable names lists in your second examples if you want to print these lists too.
#I have tried like this, it works very well.
a = enumerate(range(10))
b = enumerate(range(1,10))
c=list(zip(a,b))
print('c is')
print(c)
a = enumerate(range(10))
x = list(a)
print(x)
b = enumerate(range(1,10))
y = list(b)
print(y)
d=list(zip(x,y))
print('d is')
print(d)
+ 4
#These websites are explaining well about enumerate.
# http://book.pythontips.com/en/latest/enumerate.html
# https://www.programiz.com/JUMP_LINK__&&__python__&&__JUMP_LINK-programming/methods/built-in/enumerate
# https://docs.python.org/3.6/library/functions.html#enumerate
# I think because this is a built-in function / method. So it can't be readable or iterable without range,list or loop.
# See last prints.
# Here I found easier way than my previous post. You don't need to create variable name. You just add list front of enumerate.
a = list(enumerate(range(10)))
print(a)
b = list(enumerate(range(1,10)))
print(b)
d=list(zip(a,b))
print('d is')
print(d)
print(enumerate(range(5)))
print(list(enumerate(range(5))))
0
c and d are different. c is a list, whereas d is empty list. Surprising! But why?
0
Thank you, Ferhat Sevim. Your code works for me. But I still want a plain explanation on what occurs to the variable a after print(list(a)). Doest list(a) changes a? why d=list(zip(a,b)) is empty in my code? Thanks.