[Python-Dev] Adding start to enumerate()
Guido van Rossum
guido at python.org
Tue May 13 21:05:36 CEST 2008
On Tue, May 13, 2008 at 11:59 AM, Facundo Batista
<facundobatista at gmail.com> wrote:
> 2008/5/13, Steven D'Aprano <steve at pearwood.info>:
>
>
> > Perhaps what we need is a more flexible enumerate function?
> > enumerate(iterable, start_at_index=0, count_from=0)
>
> +1 to provide both options: they're not intrusive (as I can keep using
> enumerate without those), and having both helps in the understanding
> of the function.
>
> I mean, if I find an option that is "start", I can confuse if it will
> start counting or giving me the elements of the iterable... if I found
> both parameters, it will be easier to understand.
Actually, having both dramatically increases the potential for
confusion. Once you have the starting index option, you're always
going to be worried about whether the first index generated defaults
to zero or to the starting index, since depending on your use case one
or the other is vastly more useful...
We already have itertools.islice() which can handle both of these
easily (slice the input or slice the output).
-1 on providing a start index.
+1 on providing a start value for the count, making it a
positional-with-optional-keyword-name ('start') parameter.
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list