Mikhail V wrote:
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.
I don't think it's all that confusing. It looks a bit cluttered when the thing being inserted is itself a list literal, but that seems like a rare case of something that's not all that coommon in the first place. My feeling is that inserting is not a frequent enough operation to warrant having its own operator, especially not when there is already a syntax that does the same thing.
Is there some technical problem with implementing this?
Yes, it doesn't fit into the current scheme for augmented assignment operators. There are no special methods for combining augmented assignments with slicing -- you couldn't implement this just by adding an __ixor__ method to the list type. There would need to be a new special method for "in-place xor with slice", and the compiler would have to recognise this combination and emit special bytecode for it. That would raise the question of why ^= is getting this special treatment but not any of the other augmented assignments, and why not "in-place operation with attribute" as well, and potentially we would end up with two new entire sets of special methods for different flavours of augmented assignments. I really don't think we want to go there. -- Greg _______________________________________________ Python-ideas mailing list [email protected] https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/
