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

Mikhail V mikhailwas at gmail.com
Tue Jun 12 10:54:43 EDT 2018


I think it would be logical to have the insert operator for lists.
Similar to list extend operator += , it could use one of augmented
assignment operators, e,g, /=.

    L = ["aa"]

    L[0] /= "bb"

    ->  ["bb", "aa"]

    L[0] /= [1,2]

    ->  [[1,2], "aa"]

etc.

Without index it would work like append():

    L /= "bb"

    #->  ["aa", "bb"]


As for possible spellings I like this one as well:

    L[i] ^= e

The proposed solution is meant to have insert() method semantics,
plus it would cover append() method nicely.

Insert and append are very frequent operations, so I wonder
if there was already related suggestion?   Is there some technical
problem with implementing this?


Note that there is a trick to 'insert' an element with slicing syntax, e.g.:

    L[0:0] = [[1,2]]

    -> [[1,2], "aa"]


    L[0:0] = ["bb"]

    -> ["bb", "aa"]

The trick is to put brackets around the element and so it works as insert().
Though additional brackets look really confusing for this purpose, so I don't
feel like using this seriously.


M


More information about the Python-ideas mailing list