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.