[Python-ideas] Operator for inserting an element into a list

Cameron Simpson cs at cskk.id.au
Fri Jun 15 21:44:22 EDT 2018


On 16Jun2018 02:42, Mikhail V <mikhailwas at gmail.com> wrote:
>Now I have slightly different idea. How is about special-casing of this
>as a shortcut for append:
>
>L[] = item
>
>Namely just use the fact that empty slice is SyntaxError now.

Now we're just making typing errors into working code.

Also, that isn't an empty slice. That's a _missing_ slice. An empty slice has 
zero length.

While genuinely new syntax needs to land in such a gap (because otherwise it 
will break working code), new syntax needs a much highly value than new 
meanings for existing operators.

Some things _should_ be syntax errors. Particularly things which may be typing 
errors. Suppose I'd meant to type:

  L[0] = item

Silent breakage, requiring runtime debugging.

>I understand this is totally different approach than operator
>overloading and maybe
>hard to implement, but I feel like it looks really appealing.
>And it is quite intuitive imo. For me the syntax reads like:
>"add new empty element and this element will be "item".

The term "new empty element" is a nonsense term to me.

If you mean "replace an empty slice at the end of the list with a new element", 
that can already be written:

  L[len(L):len(L)]=[9]

Cumbersome, I accept. But I've got a .append method.

Cheers,
Cameron Simpson <cs at cskk.id.au>


More information about the Python-ideas mailing list