[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