[Tutor] Do something on list elements

Alan Gauld alan.gauld at yahoo.co.uk
Fri Jul 27 19:24:41 EDT 2018

On 27/07/18 23:32, Cameron Simpson wrote:

>> for index, s in l:
>>   l[index] = s.replace('X','')
>> print(l)
> I think you meant:
>   for index, s in enumerate(l):

Oops, yes. Sorry.

>> In Python you very rarely need to resort to using indexes
>> to process the members of a collection. And even more rarely
>> do you need to manually increment the index.
> I use indices when I need to modify the elements of a list in place. 

Yes, that's probably the most common use case, and
enumerate is the best way to do that.

> comprehension makes a shiny new list. That is usually fine, but not always what 
> is required.

>From a purist point of view its usually preferable but in
practice making copies of large data structures is usually
a bad idea.  In that case you are forced to resort to
enumerate, I agree.

> The other place I use enumerate in a big way is to track line numbers in files, 
> as context for error messages (either now or later). For example:

Yes, but then you don't use the index to access/process
the data. Its just providing context.

Alan G
Author of the Learn to Program web site
Follow my photo-blog on Flickr at:

More information about the Tutor mailing list