Перейти к содержимому

Как сравнить два списка

  • автор:

Сравнение и идентичность двух списков в Python

Если нужен список уникальных элементов в объединении двух списков:

Симметричная разность двух списков:

Обычная разность(множество из lst1 не входящее в lst2 ):

Вариант, сохраняющий порядок с меньшим количеством конверсий типов:

Как сравнить по индексно значения двух списков?

Имеем два списка:

Задача состоит в том, чтобы сравнить эти списки по индексно, при сравнении меньший элемент вынести в отдельный список result .

Смотрим решение с комментариями к коду:

Код выше можно записать короче, при помощи выражения-генератора списка или функции map()

Вычисление идентичности двух списков в Python.

Задача состоит в том, чтобы проверить, содержат ли два списка точно одинаковые элементы, то есть проверить их идентичность. Это довольно полезная распространенная задача.

Так как оператор == сравнивает списки по индексно с лева — направо, то решение состоит в том, чтобы перед их сравнением — списки отсортировать, ведь заранее мы не знаем, упорядочены они или нет.

Как сравнить два списка в Python

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

Сравнение – это метод проверки элементов данных одного списка на предмет равенства с элементами данных другого списка.

Методы сравнения двух списков

Мы можем использовать любой из следующих методов для сравнения:

  • Функции reduce() и map().
  • Функция collection.counter().
  • sort() вместе с оператором ==.
  • set() вместе с оператором ==.
  • Функция difference().

1. Функции Python reduce() и map()

Мы можем использовать функцию map() вместе с функцией functools.reduce() для сравнения элементов данных двух списков.

Метод map() принимает в качестве аргументов функцию и итерацию, например список, кортеж, строку и т.д.

Он применяет переданную функцию к каждому элементу итерации, а затем возвращает объект карты, то есть итератор, в качестве результата.

Метод functools.reduce() применяет переданную функцию к каждому элементу итерируемого ввода рекурсивным образом.

Первоначально он применит функцию к первому и второму элементам и вернет результат. Тот же процесс будет продолжаться для каждого из элементов, пока в списке не останется элементов.

Как комбинация, функция map() применяет функцию ввода к каждому элементу, а функция reduce() гарантирует, что она применяет функцию последовательно.

2. Метод Python collection.counter()

Метод collection.counter() можно использовать для эффективного сравнения списков. Функция counter() подсчитывает частоту элементов в списке и сохраняет данные в виде словаря в формате <значение>: <частота>.

Если два списка имеют одинаковый вывод словаря, мы можем сделать вывод, что списки одинаковы.

Примечание. Порядок в списке не влияет на метод counter().

3. Метод Python sort() и оператор ==

Мы можем объединить метод sort() с оператором == для сравнения двух списков.

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

Примечание. Порядок в списке не влияет на этот метод, потому что мы будем сортировать списки перед сравнением.

Кроме того, оператор == используется для сравнения списка элемент за элементом.

4. Метод Python set() и оператор ==

Метод set() манипулирует элементами данных итерации до отсортированного набора элементов данных, не принимая во внимание порядок элементов.

Кроме того, оператор == используется для поэлементного сравнения элементов данных списка.

5. Понимание пользовательского списка

Мы можем использовать List в Python для сравнения двух списков.

В приведенном выше коде мы устанавливаем элемент указателя «x» на список l1 и l3. Далее мы проверяем, присутствует ли элемент, на который указывает элемент-указатель, в списках.

How to compare two lists in python?

Now I want to compare these two lists. I guess split returns a list. We can do simple comparision in Java like dateArr[i] == sdateArr[i] , but how can we do it in Python?

jinawee's user avatar

6 Answers 6

You could always do just:

By casting a , b and c as a set, you remove duplicates and order doesn’t count. Comparing sets is also much faster and more efficient than comparing lists.

PyRsquared's user avatar

If you mean lists, try == :

If you want to compare strings (per your comment):

Given the code you provided in comments, I assume you want to do this:

The split -method of the string returns a list. A list in Python is very different from an array. == in this case does an element-wise comparison of the two lists and returns if all their elements are equal and the number and order of the elements is the same. Read the documentation.

Как сравнить два списка в Python

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

Ниже приведены методы сравнения двух списков в Python.

Функция cmp()

Функция Python cmp() сравнивает два объекта Python и возвращает целочисленные значения -1, 0, 1 согласно сравнению.

Примечание. Не используется в версии Python 3.x.

Set() функция и оператор ==

Функция Python set() преобразовывает список в набор, не заботясь о порядке элементов. Кроме того, мы используем оператор равенства (==) для сравнения элементов данных в списке. Разберем на следующем примере.

В приведенном выше примере мы объявили два списка для сравнения друг с другом. Мы преобразовали эти списки в набор и сравнили каждый элемент с помощью оператора ==. Все элементы равны в обоих списках, тогда, если блок выполнен, распечатывается результат.

Метод sort() с оператором ==

Функция Python sort() используется для сортировки списков. Элементы одного и того же списка имеют одинаковую позицию индекса, это означает, что списки равны.

Примечание. В методе sort() мы можем передавать элементы списка в любом порядке, потому что мы сортируем список перед сравнением.

Разберем метод в следующем примере.

Collection.counter()

Модуль сбора представляет counter(), который эффективно сравнивает список. Он хранит данные в формате словаря <value>:<frequency> и подсчитывает частоту элементов списка.

Примечание. Порядок элементов списка не имеет значения в этой функции.

Reduce() и map()

Функция map() принимает функцию и повторяемый объект Python (список, кортеж, строку и т. д.) в качестве аргументов и возвращает объект. Функция реализуется для каждого элемента списка и в результате возвращает итератор.

Кроме того, метод reduce() рекурсивно реализует данную функцию итерируемому объекту.

Здесь мы будем использовать оба метода в комбинации. Функция map() будет реализовывать функцию (она может быть определяемая пользователем или лямбда-функция) для каждого итеративного объекта, а функция reduce() позаботится о том, чтобы применялся рекурсивный образ.

Примечание. Чтобы использовать функцию reduce(), нужно импортировать модуль functool.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *