Python: Объединение списков – Слияние списков (8 способов)
В этом руководстве вы узнаете, как использовать Python для объединения списков, включая разные способы их объединения. Вы узнаете, например, как добавить один список к другому, объединить списки последовательно, объединить списки без дубликатов и многое другое.
Умение работать со списками в Python — невероятно важный навык. Списки в Python являются изменяемыми объектами, что означает их возможность изменяться. Они также могут содержать дублирующиеся значения и быть упорядочены различными способами. Поскольку списки в Python используются очень часто, умение манипулировать ими различными способами поможет продвинуться в вашей карьере Python
Оглавление
Объединение списков Python
Самый простой способ объединить списки Python — использовать либо распаковку списков, либо оператор
Давайте сначала рассмотрим использование оператора +
, так как он синтаксически намного проще и легче для понимания. Посмотрим, как мы можем объединить два списка:
Мы видим, что при печати третьего списка он объединяет первый и второй.
Аналогично, мы можем создать новый список, распаковав все элементы из списков, которые мы хотим объединить. Используя оператор *
, мы можем получить доступ ко всем элементам обоих списков и распаковать их в третий.
Давайте посмотрим, как это будет выглядеть:
В следующем разделе вы узнаете, как объединить два списка в Python чередующимся образом, используя функцию zip()
в Python.
Объедините списки Python, чередуя их с помощью Zip
Когда вы объединяете списки в Python, возможно, вы захотите добавлять элементы поочередно. Например, вы можете добавить первый элемент из обоих списков, затем второй элемент и так далее.
Для этого мы можем использовать функцию Python zip()
. Функция zip выполняет поочередную итерацию по нескольким элементам, позволяя нам получать доступ к элементам по порядку.
Давайте посмотрим, как мы можем использовать функцию zip()
, чтобы комбинировать списки Python поочередно:
Функция zip()
создает zip-объект, который технически является объектом-генератором. Когда мы преобразуем его обратно в список, мы обращаемся ко всем элементам в генераторе. Благодаря этому мы можем использовать функцию для последовательного объединения двух списков Python.
Затем мы используем списковое включение для "разворачивания" объекта zip. Чтобы узнать больше о том, как это работает, ознакомьтесь с моим руководством по разворачиванию списка списков
В следующем разделе вы узнаете, как объединить два списка в Python без дубликатов.
Объедините списки Python без дубликатов
Списки в Python позволяют нам иметь в них повторяющиеся значения – это одно из свойств, которое делает их особенными.
Другой структурой данных в Python является множество, которое похоже на список, но не может содержать дублирующиеся элементы. Мы можем использовать множество, чтобы удалить дубликаты из списка, преобразовав список в множество. Чтобы узнать больше об удалении дубликатов из списка в Python, ознакомьтесь с моим руководством здесь.
Давайте посмотрим, как мы можем объединить наши списки и удалить все дубликаты, используя множество:
Давайте изучим, что мы здесь сделали:
Мы объединили наши списки с помощью оператора
+
Затем мы преобразовали этот список в множество, чтобы удалить дубликаты.
Затем мы преобразовали набор обратно в список
В следующем разделе вы узнаете, как объединять массивы с помощью Python.
Объединение массивов Python
numpy
, популярная библиотека Python для науки о данных, имеет структуру данных, похожую на список, называемую numpy arrays
. Эти массивы имеют множество различных методов, которые облегчают работу с ними.
Один из этих методов - np.concatenate()
, который, как следует из названия, объединяет два списка.
Давайте посмотрим, как мы можем использовать Python и numpy
для этого:
Давайте рассмотрим, что мы сделали здесь:
Мы преобразовали наши списки в массивы numpy
Затем мы применили метод конкатенации к первому массиву и передали в него второй.
В следующем разделе вы узнаете, как объединять списки в Python, используя цикл for.
Объединение списков Python с помощью цикла For
В этом разделе вы научитесь использовать цикл for для добавления элементов из одного списка в другой. Хотя этот подход не всегда необходим, он дает гибкость в выборе включаемых элементов.
Например, используя цикл for, вы можете пропускать определенные элементы.
Давайте рассмотрим два примера: (1) где вы объединяете все элементы, и (2) где вы объединяете условно:
Давайте рассмотрим, что мы сделали здесь в обоих примерах:
Мы перебрали наш второй список и добавили каждый элемент в наш первый список
В условном примере мы проверили условие. Если условие выполнено, то добавляем элемент в список. Если нет, то элемент пропускается.
В следующем разделе вы узнаете, как использовать генераторы списков в Python для объединения списков.
Объединение списков Python с пониманием списков
Мы также можем использовать для объединения двух списков в Python списковое включение. Этот метод использует списковое включение несколько необычно: мы используем его только для перебора списка и добавления элементов в другой список.
Давайте посмотрим, как это выглядит:
Причина, по которой этот подход кажется немного странным, заключается в том, что понимание плавает само по себе, действуя скорее как оператор, чем традиционное присваивание нового списка. Синтаксически этот подход странный и не имеет большого значения, отличного от цикла for.
В следующем разделе вы узнаете, как объединять списки Python, оставляя только общие элементы.
Объедините списки Python с общими элементами
Бывают случаи, когда нужно объединить только общие элементы между двумя списками Python, то есть пересечение двух списков. У меня есть подробное руководство на эту тему здесь, которое детально объясняет, как работает этот подход.
Подход, показанный ниже, использует sets
для создания уникальных элементов в списках. В приведённом выше руководстве показаны различные подходы для достижения этой цели.
Давайте рассмотрим, как объединить списки, оставив только общие элементы:
Давайте исследуем, что мы здесь сделали:
Оба списка преобразованы в множества
Первый набор использует метод
.intersection()
и передает второй в качестве аргументаПоследний набор возвращается в виде списка
В следующем разделе вы узнаете, как объединить два списка, используя только уникальные элементы из обоих списков.
Объедините списки Python только с уникальными элементами
Вам может понадобиться объединить два списка и сохранить только уникальные элементы из обоих списков.
Для этого подхода мы снова будем использовать множества, аналогично предыдущему подходу, сначала проверяя пересечение между двумя списками.
Давайте посмотрим, как мы можем сделать это на Python, а затем углубимся в то, как это работает:
Давайте посмотрим, что мы сделали здесь:
Мы нашли пересечение двух списков и создали список, названный
common_elements
Затем мы объединили наши два списка в список под названием
combined
Затем мы прошлись по списку общих элементов
Для каждого элемента мы выполняли генератор списков, который перебирал общие элементы и исключал их из объединенного списка.
Причина, по которой мы используем списковую генерацию, заключается в том, что она позволяет нам проверять наличие дубликатов. Если бы мы просто использовали метод, такой как .remove()
, то был бы удален только первый экземпляр.
Заключение
В этом посте вы узнали, как использовать Python для объединения двух списков. Вы узнали, как делать это, просто объединяя два списка по порядку. Также вы узнали, как объединять списки в чередующейся последовательности и без дубликатов. Вы узнали, как использовать циклы for и включения списков для объединения списков Python. Наконец, вы узнали, как объединять списки, включающие только общие элементы и только уникальные элементы.
Чтобы узнать больше о структуре данных списка в Python, ознакомьтесь с официальной документацией здесь.
Last updated