Python: объединение двух списков

В Python списки можно объединять несколькими способами — каждый удобен в своих ситуациях.


Что нужно знать


Пример 1: оператор +

list_1 = [1, 'a']
list_2 = [3, 4, 5]

list_joined = list_1 + list_2
print(list_joined)

Вывод

[1, 'a', 3, 4, 5]

Оператор + создаёт новый список, в котором сначала идут элементы первого, затем второго.


Пример 2: распаковка через *

list_1 = [1, 'a']
list_2 = range(2, 4)

list_joined = [*list_1, *list_2]
print(list_joined)

Вывод

[1, 'a', 2, 3]

Звёздочка * распаковывает любую итерируемую коллекцию (списки, кортежи, range и т. д.) в новый список.


Пример 3: только уникальные значения

list_1 = [1, 'a']
list_2 = [1, 2, 3]

list_joined = list(set(list_1 + list_2))
print(list_joined)

Вывод

[1, 2, 3, 'a']

Если нужны только уникальные элементы, объединённый список оборачивается в set() — он отбрасывает дубликаты, — а затем обратно в list().


Пример 4: метод extend()

list_1 = [1, 'a']
list_2 = [1, 2, 3]

list_2.extend(list_1)
print(list_2)

Вывод

[1, 2, 3, 1, 'a']

Метод extend() дописывает элементы переданного списка в конец текущего, изменяя его на месте.


Как это работает

  • + и распаковка * создают новые списки, исходные не меняются.

  • extend() изменяет список, у которого он вызван.

  • set() теряет порядок элементов, поэтому используйте его, только когда дубликаты действительно не нужны.