logo

Kuinka vertailla kahta luetteloa Pythonissa

Python tarjoaa useita tapoja vertailla näitä kahta luetteloa. Vertailu on prosessi, jossa kohteen tietokohteita verrataan toiseen luettelon tietokohteeseen riippumatta siitä, ovatko ne samoja vai eivät.

 list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal 

Kahden luettelon vertailumenetelmät on esitetty alla.

  • cmp()-funktio
  • Set()-funktio ja ==-operaattori
  • Sort()-funktio ja ==-operaattori
  • Collection.counter()-funktio
  • Reduce()- ja map()-funktiot

cmp()-funktio

The Python cmp()-funktio vertaa kahta Python-objektia ja palauttaa kokonaislukuarvot -1, 0, 1 vertailun mukaan.

Huomautus - Sitä ei käytetä Python 3.x -versiossa.

Set()-funktio ja ==-operaattori

Python aseta() toiminto muokata luetteloa joukoksi huolehtimatta elementtien järjestyksestä. Lisäksi käytämme yhtäläisyysoperaattoria (==) listan tietokohteiden vertailuun. Ymmärretään seuraava esimerkki.

lajiteltu tuple python

Esimerkki -

 list1 = [11, 12, 13, 14, 15] list2 = [12, 13, 11, 15, 14] a = set(list1) b = set(list2) if a == b: print('The list1 and list2 are equal') else: print('The list1 and list2 are not equal') 

Lähtö:

 The list1 and list2 are equal 

Selitys:

Yllä olevassa esimerkissä olemme ilmoittaneet, että näitä kahta luetteloa verrataan toisiinsa. Muunsimme nämä luettelot joukoksi ja vertasimme jokaista elementtiä ==-operaattorin avulla. Kaikki elementit ovat samat molemmissa listoissa, sitten jos lohko suoritetaan ja tulos tulostetaan.

lambda-toiminto java

Sort()-menetelmä ==-operaattorilla

Python järjestellä() -toimintoa käytetään luetteloiden lajitteluun. Saman listan elementit ovat samassa hakemistossa, mitä se tarkoittaa; listat ovat samanarvoisia.

Huomautus - Sort()-menetelmässä voimme siirtää luettelon kohteet missä tahansa järjestyksessä, koska lajittelemme luetteloa ennen vertailua.

Ymmärretään seuraava esimerkki -

Esimerkki -

 import collections list1 = [10, 20, 30, 40, 50, 60] list2 = [10, 20, 30, 50, 40, 70] list3 = [50, 10, 30, 20, 60, 40] # Sorting the list list1.sort() list2.sort() list3.sort() if list1 == list2: print('The list1 and list2 are the same') else: print('The list1 and list3 are not the same') if list1 == list3: print('The list1 and list2 are not the same') else: print('The list1 and list2 are not the same') 

Lähtö:

 The list1 and list3 are not the same The list1 and list2 are not the same 

Collection.counter()-funktio

Keräysmoduuli tarjoaa laskuri(), jotka vertaavat luetteloa tehokkaasti. Se tallentaa tiedot sanakirjamuodossa: ja laskee luettelon kohteiden tiheyden.

zeenat aman näyttelijä

Huomautus - Listan elementtien järjestyksellä ei ole merkitystä tässä funktiossa.

Esimerkki -

 import collections list1 = [10, 20, 30, 40, 50, 60] list2 = [10, 20, 30, 50, 40, 70] list3 = [50, 10, 30, 20, 60, 40] if collections.Counter(list1) == collections.Counter(list2): print('The lists l1 and l2 are the same') else: print('The lists l1 and l2 are not the same') if collections.Counter(list1) == collections.Counter(list3): print('The lists l1 and l3 are the same') else: print('The lists l1 and l3 are not the same') 

Lähtö:

 The lists list1 and list2 are not the same The lists list1 and list3 are the same 

Vähennä() ja map()

The kartta() funktio hyväksyy funktion ja Pythonin iteroitavan objektin (luettelo, monikko, merkkijono jne.) argumenteiksi ja palauttaa karttaobjektin. Funktio toteuttaa luettelon jokaisessa elementissä ja palauttaa tuloksena iteraattorin.

Sitä paitsi The vähentää() menetelmä toteuttaa annetun funktion iteroitavalle objektille rekursiivisesti.

Tässä käytämme molempia menetelmiä yhdessä. The kartta() funktio toteuttaisi funktion (se voi olla käyttäjän määrittämä tai lambda-funktio) jokaiseen iteroitavaan objektiin ja vähentää() toimintoa, joka soveltuisi rekursiivisella tavalla.

Huomautus - Meidän on tuotava functool-moduuli, jotta voimme käyttää vähennysfunktiota ().

Ymmärretään seuraava esimerkki.

Esimerkki -

 import functools list1 = [10, 20, 30, 40, 50] list2 = [10, 20, 30, 50, 40, 60, 70] list3 = [10, 20, 30, 40, 50] if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list2), True): print('The list1 and list2 are the same') else: print('The list1 and list2 are not the same') if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list3), True): print('The list1 and list3 are the same') else: print('The list1 and list3 are not the same') 

Lähtö:

java array slice
 The list1 and list2 are not the same The list1 and list3 are the same 

Tässä osiossa olemme käsitelleet erilaisia ​​tapoja vertailla kahta luetteloa Pythonissa.