Как объединить два списка в Python (объединить и расширить)

Узнайте, как лучше всего объединить два списка в Python. Сравните оператор плюс, метод расширения, распаковку списка и параметры цепочки.

Попробуйте это решение в редакторе

Обзор

Объединение наборов данных списков — частая операция при агрегировании результатов, обработке пакетов данных или добавлении элементов в коллекцию. Python предоставляет несколько способов объединения списков в зависимости от того, хотите ли вы изменить список на месте или создать новый список.

Чтобы создать совершенно новый список путем объединения двух существующих, самый простой подход — использовать оператор конкатенации «+» (например, «list3 = list1 + list2»). Альтернативно, вPython 3.5+ вы можете использовать синтаксис распаковки списка `[*list1, *list2]`, который очень выразителен и позволяет легко вставлять дополнительные элементы в любое место при создании списка.

Если вы хотите изменить существующий список на месте, добавив элементы из другого списка, метод .extend() является наиболее эффективным выбором. Это позволяет избежать выделения памяти для нового списка и напрямую изменяет целевой список. Для эффективного использования памяти обхода объединенных списков без дублирования данных в памяти вы можете использовать `itertools.chain()`.

Код и вывод выполнения

Этот сценарий демонстрирует объединение двух списков с использованием операторов, методов расширения и распаковки.

list_a = [1, 2, 3]
list_b = [4, 5, 6]

# 1. Plus operator (creates a new list)
merged_plus = list_a + list_b
print("Using + operator:", merged_plus)

# 2. Unpacking operator (creates a new list)
merged_unpack = [*list_a, *list_b]
print("Using unpacking:", merged_unpack)

# 3. Extend method (modifies list_a in-place)
list_a.extend(list_b)
print("After extending list_a:", list_a)
Терминальный выход
Using + operator: [1, 2, 3, 4, 5, 6]
Using unpacking: [1, 2, 3, 4, 5, 6]
After extending list_a: [1, 2, 3, 4, 5, 6]

Пошаговая реализация

  • Используйте оператор +, чтобы объединить списки и вернуть новый объединенный список.
  • Вызовите list_a.extend(list_b), чтобы добавить все элементы list_b непосредственно в list_a.
  • Используйте оператор распаковки звездочки [*list_a, *list_b], чтобы создать список из элементов обоих.

Часто задаваемые вопросы

В чем разница между Append() и Extend()?

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

Как объединить списки и удалить дубликаты?

Вы можете объединить их, а затем преобразовать результат в набор или сначала преобразовать в наборы: list(set(list_a) | set(list_b)).

Связанные темы

Рекомендуемые ресурсы Python

Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.