[Python-ideas] More classical for-loop

Chris Angelico rosuav at gmail.com
Fri Feb 17 11:37:12 EST 2017


On Sat, Feb 18, 2017 at 3:30 AM, Mikhail V <mikhailwas at gmail.com> wrote:
> On 17 February 2017 at 04:59, Chris Angelico <rosuav at gmail.com> wrote:
>>
>> On Fri, Feb 17, 2017 at 2:13 PM, Mikhail V <mikhailwas at gmail.com> wrote:
>> > Common use case:
>> >
>> > L = [1,3,5,7]
>> >
>> > for i over len(L):
>> >    e = L[i]
>> >
>> > or:
>> >
>> > length = len(L)
>> > for i over length:
>> >    e = L[i]
>>
>> Better use case:
>>
>> for i, e in enumerate(L):
>>
>
> This would be more compact, yet less readable, more error prone variant.
> I'd avoid it it all costs and even if I don't need the index further in loop
> body,
> (which happens rarely in my experience) I write e=L[i] in second line
> to make the code more verbose and keep the flow order.
> So your variant (and those proposed in PEP-212) could serve in list
> comprehensions for example, but for common 'expanded' code  I find it
> decline of readability, and creating totally different variants for same
> iteration idea.
> But partially that could be simply matter of habit and love to contractions.

If you don't need the index, why not just iterate over the list directly?

for e in L:

That's the single most obvious way to step through a collection in
Python. What do you need to count up to the length for?

ChrisA


More information about the Python-ideas mailing list