logo

Kako primerjati dva seznama v Pythonu

Python ponuja več načinov za primerjavo obeh seznamov. Primerjava je postopek, ko se podatkovne postavke primerjajo z drugimi podatkovnimi postavkami na seznamu, ne glede na to, ali so enake ali ne.

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

Metode primerjave dveh seznamov so navedene spodaj.

  • Funkcija cmp().
  • Funkcija set() in operator ==
  • Funkcija sort() in operator ==
  • Funkcija collection.counter().
  • Funkciji reduce() in map().

Funkcija cmp().

The Python Funkcija cmp() primerja oba predmeta Python in glede na primerjavo vrne celoštevilske vrednosti -1, 0, 1.

Opomba – ne uporablja se v različici Python 3.x.

Funkcija set() in operator ==

Python set() funkcijo manipulirati s seznamom v množico, ne da bi poskrbeli za vrstni red elementov. Poleg tega uporabljamo operator enako (==) za primerjavo podatkovnih postavk na seznamu. Razumejmo naslednji primer.

linux make ukaz

Primer -

 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') 

Izhod:

 The list1 and list2 are equal 

Pojasnilo:

V zgornjem primeru smo dva seznama razglasili za medsebojno primerjavo. Te sezname smo pretvorili v niz in vsak element primerjali s pomočjo operatorja ==. Vsi elementi so na obeh seznamih enaki, če pa se blok izvede in natisne rezultat.

vrste računalnika

Metoda sort() z operatorjem ==

Python razvrsti() funkcija se uporablja za razvrščanje seznamov. Elementi istega seznama pomenijo isto pozicijo indeksa; seznami so enakovredni.

Opomba – V metodi sort() lahko posredujemo elemente seznama v poljubnem vrstnem redu, ker razvrstimo seznam pred primerjavo.

Razumejmo naslednji primer -

Primer -

 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') 

Izhod:

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

Funkcija collection.counter().

Zbiralni modul zagotavlja števec(), ki učinkovito primerjajo seznam. Podatke shrani v obliki slovarja : in šteje pogostost elementov seznama.

niz primerjaj z javo

Opomba – V tej funkciji vrstni red elementov seznama ni pomemben.

Primer -

 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') 

Izhod:

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

Reducira() in map()

The zemljevid() funkcija sprejme funkcijo in ponovljivi objekt Python (seznam, tuple, niz itd.) kot argumente in vrne objekt zemljevida. Funkcija se implementira v vsak element seznama in kot rezultat vrne iterator.

Poleg tega The zmanjšati () metoda rekurzivno implementira dano funkcijo v objekt, ki ga je mogoče ponoviti.

Tukaj bomo uporabili obe metodi v kombinaciji. The zemljevid() funkcija bi implementirala funkcijo (lahko je uporabniško določena ali lambda funkcija) za vsak predmet, ki ga je mogoče ponoviti, in zmanjšati () funkcija poskrbi, da bi veljala na rekurziven način.

Opomba – za uporabo funkcije reduce() moramo uvoziti modul functool.

Razumejmo naslednji primer.

Primer -

 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') 

Izhod:

razvrščanje tulp python
 The list1 and list2 are not the same The list1 and list3 are the same 

V tem razdelku smo obravnavali različne metode primerjave dveh seznamov v Pythonu.