Suggestion for the PythonDevelopment for next version

Jean-Paul Calderone exarkun at divmod.com
Mon Oct 13 12:03:43 EDT 2008


On Mon, 13 Oct 2008 08:56:34 -0700 (PDT), azrael <jura.grozni at gmail.com> wrote:
>You know, sometimes it annoys me to write a for loop in Python. If we
>use a list a=[1,2,3,4], and want to loop through it, Python offers the
>next option
>>>>for i in a:
>>>>  print i
>>>>
>1
>2
>3
>4
>
>I love this. So simple and smooth. But what happens if we need also
>the position of an object in a list. Then there comes this annoying
>writing.
>
>>>> for i in range(len(a)):
>>>>  print a[i], i
>>>>
>1 0
>2 1
>3 2
>4 3
>
>I think that it would be great if the Python language, which is a
>totaly OOP language, could also use the index variable from the first
>example and consider it as an object with a Object variable. I mean
>the following.
>
>>>>for i in a:
>>>>  print i, i.index                # i.index is my sugesstion
>>>>
>1 0
>2 1
>3 2
>4 3
>
>I think that this would be great and we cou pass by this annoying
>"range(len(a))" functions
>

Adding a random new attribute to arbitrary objects any time they happen
to end up in a for loop would be catastrophically terrible.  Consider
the enumerate builtin, instead.

>>> for i, e in enumerate('abcd'):
...     print i, e
... 
0 a
1 b
2 c
3 d

Jean-Paul



More information about the Python-list mailing list