[Python-ideas] get() method for list and tuples

Mark Lawrence breamoreboy at yahoo.co.uk
Sun Mar 5 16:36:16 EST 2017


On 05/03/2017 20:16, Ed Kellett wrote:
> On Sun, 5 Mar 2017 at 19:54 David Mertz <mertz at gnosis.cx
> <mailto:mertz at gnosis.cx>> wrote:
>
>     In terms of an actual use case, I can see it for "Lists no longer
>     than 4".
>
> That's an excessively hard limit.
>
>     Any other use of this hypothetical method would be an anti-pattern
>
>
> What really is the point of this? You (not uniquely) have been quick to
> dismiss any uses for this as misguided. If you must do that, you might
> stick to the reasons; meaningless labels don't add anything.
>
>
>     Yes, programmers can do what they want, but providing a method is a
>     hint to users (especially beginners, but not only) that that is the
>     "right way" to do it.
>
>
>         I really think that depends what it's a list of. If the
>         positions of things in the list are important (as with an
>         argument parser, or perhaps a lookup table) I fail to see why it
>         would be wrong to peek.
>
>
>     But the positions NEVER are important when you get to a 20 item
>     list.  If you design an argument parser that is looking for "the
>     17th argument" you are doing it wrong.  I'm not saying that's
>     impossible (nor even hard) to program, but it's not good practice.
>
>
> That's probably true of argument parsers, certainly not lookup tables.
>
>
>     Sure, I'm happy to take 20+ arguments, especially if they result
>     from a glob pattern used at the command line, naming files.  But
>     when I'm doing that, I want to deal with those filenames in a loop,
>     handling each one as necessary.  In that pattern, I *never* want
>     exactly 20 arguments, but rather "however many things there are to
>     handle."
>
>
>         If lists were really designed to be used only as you and some
>         others in this thread are suggesting, I don't think they'd have
>         indexed access at all.
>
>
>     Actually, when I teach I make a big point of telling students (for
>     me, professional scientists and programmers who have used other PLs)
>     that if they are indexing a list they should look again and question
>     whether that's the right pattern.  Of course there are times when
>     it's needed, but they are fewer than C, Java, or Fortran programmers
>     think.
>
>
> I don't think that assessment applies neatly everywhere. Indexing is
> generally unnecessary when it's being used instead of iteration, but
> this thread is explicitly about cases where iteration isn't wanted.
>
> Ed
>

Patches are always welcome.  If you insist that it's needed, you do the 
work.  Hopefully it's easier with the move to github.

-- 
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence



More information about the Python-ideas mailing list