On 6/12/2018 10:54 AM, Mikhail V wrote:
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, /=.
...
Note that there is a trick to 'insert' an element with slicing syntax, e.g.:
This is not a 'trick'. It is a particular case of a general operation:
replacing a length m slice of a list with a sequence of length n. Both
m and n can be 0. The replacement sequence can be any iterable.
>>> l = [1,2,3]
>>> l[0:0] = 'abc'
>>> l
['a', 'b', 'c', 1, 2, 3]
L[0:0] = [[1,2]]
-> [[1,2], "aa"]
L[0:0] = ["bb"]
-> ["bb", "aa"]
In these examples, m and n are 0 and 1.
The trick is to put brackets around the element and so it works as insert().
Again, not a trick. Putting brackets around the element makes it
sequence of length 1. To possible be less confusing, you could use (,)
>>> l[0:0] = ([1,2],)
>>> l
[[1, 2], 'aa']
Though additional brackets look really confusing for this purpose,
so I don't feel like using this seriously.
Learning about lists means learning about slice assignment: replace a
sublist with another sequence.
--
Terry Jan Reedy
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/