How to "dereference" an iterator?

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Wed Oct 10 22:46:09 EDT 2007


The original post seems to have been eaten, so I'm replying via a reply. 
Sorry for breaking threading.

> On Wed, 2007-10-10 at 18:01 -0500, Robert Dailey wrote:
>> Hi,
>> 
>> Suppose I wanted to manually iterate over a container, for example:
>> 
>> mylist = [1,2,3,4,5,6]
>> 
>> it = iter(mylist)
>> while True:
>>     print it
>>     it.next()
>> 
>> In the example above, the print doesn't print the VALUE that the
>> iterator currently represents, it prints the iterator itself. How can I
>> get the value 'it' represents so I can either modify that value or
>> print it? Thanks.

it = iter(mylist)
while True:
    print it.next()

but that will eventually end with an exception. Better to let Python 
handle that for you:

it = iter(mylist)
for current in it:
    print current

Actually, since mylist is already iterable, you could just do this:

for current in mylist:
    print current

but you probably know that already.


-- 
Steven.



More information about the Python-list mailing list