Есть несколько способов объединить два списка в Python:
list1 + list2
(создает новый список)list1.extend(list2)
(изменяет list1)[*list1, *list2]
(создает новый список, начиная с Python 3.5)Существует несколько способов объединить два списка в Python. Рассмотрим самые распространенные и эффективные методы:
+
(Concatenation):Самый простой и интуитивно понятный способ. Создает новый список, являющийся объединением исходных списков.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list) # Вывод: [1, 2, 3, 4, 5, 6]
Плюсы: Простота и читаемость.
Минусы: Создает новый список, что может быть неэффективно при работе с большими списками.
extend()
:Изменяет существующий список, добавляя в него элементы другого списка. Более эффективен по памяти, чем оператор +
, если вам не нужен новый список.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1) # Вывод: [1, 2, 3, 4, 5, 6]
Плюсы: Изменяет существующий список, экономит память.
Минусы: Изменяет исходный список (может быть нежелательно в некоторых случаях).
*
):Этот способ позволяет создать новый список, используя распаковку элементов из исходных списков. Может быть удобен для объединения нескольких списков одновременно.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = [*list1, *list2]
print(merged_list) # Вывод: [1, 2, 3, 4, 5, 6]
# Объединение нескольких списков
list3 = [7, 8, 9]
merged_list = [*list1, *list2, *list3]
print(merged_list) # Вывод: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Плюсы: Гибкость, возможность объединения нескольких списков одновременно, создает новый список.
Минусы: Может быть менее читаемым, чем оператор +
, если объединяются только два списка.
Можно использовать для более сложного объединения списков, например, если нужно применить какую-то фильтрацию или преобразование к элементам.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = [item for sublist in [list1, list2] for item in sublist]
print(merged_list) # Вывод: [1, 2, 3, 4, 5, 6]
# Пример с фильтрацией: объединить только четные числа из двух списков
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
merged_list = [item for sublist in [list1, list2] for item in sublist if item % 2 == 0]
print(merged_list) # Вывод: [2, 4, 6, 8]
Плюсы: Гибкость, возможность применения логики во время объединения.
Минусы: Может быть менее читаемым для простых объединений.
Рекомендации:
+
(если требуется новый список) или метод extend()
(если можно изменить существующий список).*
) или генератор списков.extend()
обычно наиболее эффективен.