Python: объединение двух списков
В Python списки можно объединять несколькими способами — каждый удобен в своих ситуациях.
Что нужно знать
Метод extend()
Пример 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()теряет порядок элементов, поэтому используйте его, только когда дубликаты действительно не нужны.