The actual "enumerate" object is really just holding a current index and a reference to the original list. So if you alter the original list while you're iterating through it you'll see the changes. If you want a full copy then you can just wrap it with list()
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> numList = [2, 7, 22, 30, 1, 8] >>> aList = enumerate(numList) >>> aList.__next__() (0, 2) >>> numList[1] = 5 >>> aList.__next__() (1, 5) >>> aList2 = list(enumerate(numList)) >>> aList2 [(0, 2), (1, 5), (2, 22), (3, 30), (4, 1), (5, 8)] >>> numList[3] = -12 >>> aList2 [(0, 2), (1, 5), (2, 22), (3, 30), (4, 1), (5, 8)] >>> aList.__next__() (2, 22) >>> aList.__next__() (3, -12) >>> aList.__next__() (4, 1) >>> aList.__next__() (5, 8) >>> aList.__next__() Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration >>> -----Original Message----- From: Python-list [mailto:python-list-bounces+david.raymond=tomtom....@python.org] On Behalf Of Viet Nguyen via Python-list Sent: Thursday, September 06, 2018 2:50 PM To: python-list@python.org Subject: Re: Why emumerated list is empty on 2nd round of print? On Thursday, September 6, 2018 at 10:34:19 AM UTC-7, Chris Angelico wrote: > On Fri, Sep 7, 2018 at 3:26 AM, Viet Nguyen via Python-list > <python-list@python.org> wrote: > >>>> numList > > [2, 7, 22, 30, 1, 8] > > > >>>> aList = enumerate(numList) > > > >>>> for i,j in aList:print(i,j) > > > > 0 2 > > 1 7 > > 2 22 > > 3 30 > > 4 1 > > 5 8 > > > >>>> for i,j in aList:print(i,j) > > > >>>> > > Because it's not an enumerated list, it's an enumerated iterator. > Generally, you'll just use that directly in the loop: > > for i, value in enumerate(numbers): > > There's generally no need to hang onto it from one loop to another. > > ChrisA Thanks ChrisA. If I do this "aList = enumerate(numList)", isn't it stored permanently in aList now? I see your point to use it directly, but just in case I do need to hang onto it from one loop to another, then how is that done? Anyway I think I'm ok and I got what I need for now. -- https://mail.python.org/mailman/listinfo/python-list -- https://mail.python.org/mailman/listinfo/python-list