How to insert the contents of one list into another
You can do the following using the slice syntax on the left hand side of an assignment:
>>> array = ['the', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']
>>> array[1:1] = ['quick', 'brown']
>>> array
['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']
That's about as Pythonic as it gets!
Leveraging the splat operator / list unpacking for lists you can do it using
array = ['the', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']
addition = ['quick', 'brown']
# like this
array2 = ['the', *addition, 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']
# or like this
array = [ *array[:1], *addition, *array[1:]]
print(array)
print(array2)
to get
['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']
The operator got introduces with PEP 448: Additional Unpacking Generalizations.
insert(i,j)
, where i
is the index and j
is what you want to insert, does not add as a list. Instead it adds as a list item:
array = ['the', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']
array.insert(1,'brown')
The new array would be:
array = ['the', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']
The extend
method of list object does this, but at the end of the original list.
addition.extend(array)