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)

Tags:

Python

List