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

Chris Angelico rosuav at gmail.com
Fri Jun 15 11:54:24 EDT 2018


On Sat, Jun 16, 2018 at 1:48 AM, Mikhail V <mikhailwas at gmail.com> wrote:
> On Fri, Jun 15, 2018 at 5:51 AM, Michael Selik <mike at selik.org> wrote:
>
>> If you would like to prove the need for this operator, one piece of evidence
>> you can provide is a count of the number of times someone writes
>> "list.append" for an iterable vs "+=" and encloses a str or other type in a
>> throw-away list to effectively append.
>
> That's strange idea - there is no doubt that one would use
> list.append() and most probably
> it is the case statistically.
> So the question would be "what is wrong with list.append()?"
> And as said many times, there is nothing wrong, but a lot of people
> seem to want an in-place
> operator for this purpose. And I can understand this, because:
>
> 1. append() is _ubiquitous_
> 2. in-place assignment form makes some emphasis on mutating, in
> contrast to method call.

How so? You can write "x += 1" with integers, and that doesn't mutate;
but if you write "x.some_method()", doing nothing with the return
value, it's fairly obvious that it's going to have side effects, most
likely to mutate the object. Augmented assignment is no better than a
method at that.

ChrisA


More information about the Python-ideas mailing list