for loop without variable

Marty martyb1 at earthlink.net
Fri Jan 11 04:36:56 CET 2008


Hrvoje Niksic wrote:
> Mike Meyer <mwm-keyword-python.b4bdba at mired.org> writes:
> 
>> It sounds to me like your counter variable actually has meaning,
> 
> It depends how the code is written.  In the example such as:
> 
> for meaningless_variable in xrange(number_of_attempts):
>     ...
> 
> the loop variable really has no meaning.  Rewriting this code only to
> appease pylint is exactly that, it has nothing with making the code
> more readable.
> 
>> you've hidden that meaning by giving it the meaningless name "i". If
>> you give it a meaningful name, then there's an obvious way to do it
>> (which you listed yourself):
>>
>>     while retries_left:
> [...]
> 
> This loop contains more code and hence more opportunities for
> introducing bugs.  For example, if you use "continue" anywhere in the
> loop, you will do one retry too much.

I recently faced a similar issue doing something like this:

     data_out = []
     for i in range(len(data_in)):
     	data_out.append([])

This caused me to wonder why Python does not have a "foreach" statement (and 
also why has it not come up in this thread)?  I realize the topic has probably 
been beaten to death in earlier thread(s), but does anyone have the short answer?



More information about the Python-list mailing list