Рубрики
Без рубрики

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

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

Автор оригинала: Pankaj Kumar.

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

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

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

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

  • Функция уменьшения () и карты ()
  • Функция Collection.Counter ()
  • Python Sort () Функция вместе с
  • Функция Python Set () наряду с
  • Функция разницы ()

1. Python Уменьшите () и MAP () Функции

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

карта () Метод принимает Функция и ИТЕРИТЕЛЬНО такие как список, кортеж, строка и т. Д. как Аргументы Отказ

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

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

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

В качестве комбинации функция карты () применит функцию ввода на каждый элемент, а функция edite () убедится, что она применяет функцию в A подряд Отказ

Пример:

import functools 


l1 = [10, 20, 30, 40, 50] 
l2 = [10, 20, 30, 50, 40, 70] 
l3 = [10, 20, 30, 40, 50] 

if functools.reduce(lambda x, y : x and y, map(lambda p, q: p == q,l1,l2), True): 
    print ("The lists l1 and l2 are the same") 
else: 
    print ("The lists l1 and l2 are not the same") 

if functools.reduce(lambda x, y : x and y, map(lambda p, q: p == q,l1,l3), True): 
    print ("The lists l1 and l3 are the same") 
else: 
    print ("The lists l1 and l3 are not the same") 

Выход:

The lists l1 and l2 are not the same
The lists l1 and l3 are the same

2. Метод Python Collection.Counter ()

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

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

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

Пример:

import collections 


l1 = [10, 20, 30, 40, 50] 
l2 = [10, 20, 30, 50, 40, 70] 
l3 = [10, 20, 30, 40, 50] 

if collections.Counter(l1) == collections.Counter(l2):
    print ("The lists l1 and l2 are the same") 
else: 
    print ("The lists l1 and l2 are not the same") 

if collections.Counter(l1) == collections.Counter(l3):
    print ("The lists l1 and l3 are the same") 
else: 
    print ("The lists l1 and l3 are not the same") 

Выход:

The lists l1 and l2 are not the same
The lists l1 and l3 are the same

3. Метод Python Sort () и сравнение списков

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

Python Сортировать () Метод используется для Сортируйте входные списки С целью, что если два входных списка равны, то Элементы будут находиться на одних и тех же индексных позициях Отказ

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

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

Пример:

import collections 


l1 = [10, 20, 30, 40, 50] 
l2 = [10, 20, 30, 50, 40, 70] 
l3 = [50, 10, 30, 20, 40] 

l1.sort() 
l2.sort() 
l3.sort() 

if l1 == l3: 
    print ("The lists l1 and l3 are the same") 
else: 
    print ("The lists l1 and l3 are not the same") 


if l1 == l2: 
    print ("The lists l1 and l2 are the same") 
else: 
    print ("The lists l1 and l2 are not the same") 

Выход:

The lists l1 and l3 are the same
The lists l1 and l2 are not the same

4. Метод Python Set () и сравнить два списка

Python Set () Метод Манипулирует элементы данных по имеющимся к месту Сортированная последовательность Набор элементов данных Не принимая порядок элементов во внимание Отказ

Далее == Оператор используется для сравнения элементов данных списка в элементной мудрее.

Пример:

l1 = [10, 20, 30, 40, 50] 
l3 = [50, 10, 30, 20, 40] 

a = set(l1)
b = set(l3)

if a == b:
    print("Lists l1 and l3 are equal")
else:
    print("Lists l1 and l3 are not equal")

Выход:

Lists l1 and l3 are equal

5. Понимание пользовательского списка Python для сравнения двух списков

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

Пример:

l1 = [10, 20, 30, 40, 50] 
l3 = [50, 75, 30, 20, 40, 69] 

res = [x for x in l1 + l3 if x not in l1 or x not in l3]

print(res)
if not res:
    print("Lists l1 and l3 are equal")
else:
    print("Lists l1 and l3 are not equal")

 

В приведенном выше коде мы устанавливаем элемент указателя «X» в список L1 и L3. Кроме того, мы проверяем, присутствует ли элемент элемента указателя в списках.

Выход:

[10, 75, 69]
Lists l1 and l3 are not equal

Заключение

Таким образом, в этой статье мы охватывали и поняли несколько способов сравнения нескольких списков в Python.