Узнайте разницу между двумя списками в Python

  1. Используйте set.difference(), чтобы найти разницу между двумя списками в Python
  2. Используйте set.symmetric_difference(), чтобы найти разницу между двумя списками в Python
  3. Используйте ключевое слово in, чтобы найти разницу между двумя списками в Python
  4. Используйте библиотеку NumPy, чтобы найти разницу между двумя списками в Python

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

В этом руководстве будет продемонстрировано несколько способов различить два списка в Python.

Используйте set.difference(), чтобы найти разницу между двумя списками в Python

Метод set() помогает пользователю преобразовать любую итерацию в повторяемую последовательность, которая также называется набором. Итерируемые объекты могут быть списком, словарем или кортежем.

Функция set.difference() используется для возврата разницы между двумя наборами. Эта функция в основном устраняет общие элементы в двух наборах.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

difference_1 = set(list_1).difference(set(list_2))
difference_2 = set(list_2).difference(set(list_1))

list_difference = list(difference_1.union(difference_2))
print(list_difference)

Выход:

[50, 5, 40, 25, 60, 15]

Для этого метода первым шагом является сохранение двух списков в двух переменных. Функция set() используется для преобразования этих списков в наборы. На этом же шаге функция set.difference() используется для определения разницы между двумя наборами. Обратите внимание, что переменная difference_1 получает элементы из list_1, а не list_2.

Переменная difference_2 получает элементы, которые находятся в list_2, а не в list_1. После этого функция union используется для получения всех элементов из переменных difference_1 и difference_2. Кроме того, функция list() используется для повторного преобразования обоих наборов в списки. Наконец, распечатывается результирующий список.

Используйте set.symmetric_difference(), чтобы найти разницу между двумя списками в Python

Здесь метод set() используется для первоначального преобразования обоих списков в наборы.

Метод symmetric_difference() используется для возврата элементов, которые находятся либо в первом наборе, либо во втором наборе. Этот метод не возвращает пересечение, как общие элементы двух наборов.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

set_difference = set(list_1).symmetric_difference(set(list_2))
list_difference = list(set_difference)

print(list_difference)

Выход:

[5, 40, 15, 50, 25, 60]

Метод set() также используется для преобразования списков в наборы. После получения разницы функция list() используется для получения и преобразования окончательного набора, как преобразование set_difference обратно в список.

Используйте ключевое слово in, чтобы найти разницу между двумя списками в Python

Ключевое слово in помогает проверить, присутствует ли элемент в повторяющейся последовательности, такой как список, или нет.

В этом методе также используется функция append(). append() используется для добавления элементов в существующий список; он не создает новый список, но изменяет исходный список, добавляя в него элементы.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

list_difference = []
for element in list_1:
    if element not in list_2:
        list_difference.append(element)

print(list_difference)

Выход:

[5, 15, 25]

В этом методе мы сначала инициализируем окончательный список, который должен быть напечатан с нулевыми элементами. Затем мы используем цикл for, чтобы начать итерацию с первым списком, которым является list_1. После этого мы используем ключевое слово not in, чтобы проверить, находится ли элемент во втором списке или нет.

Наконец, мы используем метод append() для добавления элементов, которых нет во втором списке, в исходный список, то есть list_difference. Однако недостатком этого метода является то, что он не возвращает элементы из второго списка.

Чтобы упростить этот метод, используйте понимание списка. Понимание списка - это метод, который помогает создать новый список с элементами существующего списка.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

list_difference = [element for element in list_1 if element not in list_2]

print(list_difference)

Выход:

[5, 15, 25]

Используйте библиотеку NumPy, чтобы найти разницу между двумя списками в Python

Библиотека Python NumPy - очень часто используемая библиотека. Эта библиотека помогает пользователю выполнять задачи с массивами, матрицами и линейной алгеброй.

В этом методе используются три функции библиотеки NumPy для получения разницы между двумя списками. Этими тремя функциями являются np.array(), np.setdiff1d() и np.concatenate().

Массив - это основная структура данных библиотеки NumPy. Функция np.array() помогает создавать массивы и помогает в работе с ними.

Функция np.setdiff1d() помогает вам найти установленную разницу между двумя массивами и вернуть значения, которые находятся в первом массиве, а не во втором массиве.

Функция np.concatenate используется для объединения двух или более массивов NumPy вместе. Посмотрите пример ниже:

import numpy as np
list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

array_1 = np.array(list_1)
array_2 = np.array(list_2)

difference_1 = np.setdiff1d(array_1, array_2)
difference_2 = np.setdiff1d(array_2, array_1)

list_difference = np.concatenate((difference_1, difference_2))
print(list(list_difference))

Выход:

[5, 15, 25, 40, 50, 60]

Сопутствующая статья - Python List

  • В чем разница между списочными методами добавлять и расширять
  • Как преобразовать список в струну на Python
  • Как соединить два или несколько списков на Python
  • В чем разница между делом, удалением и попаданием в списки Pythonа