Python nodrošina vairākus veidus, kā salīdzināt abus sarakstus. Salīdzināšana ir process, kurā datu vienības tiek salīdzinātas ar citu saraksta datu vienumu neatkarīgi no tā, vai tie ir vienādi vai nē.
list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal
Divu sarakstu salīdzināšanas metodes ir norādītas zemāk.
- Funkcija cmp().
- Funkcija set() un operators ==
- Funkcija sort() un operators ==
- Funkcija collection.counter()
- Funkcija samazināt () un map ()
Funkcija cmp().
The Python cmp() funkcija salīdzina divus Python objektus un atgriež veselu skaitļu vērtības -1, 0, 1 atbilstoši salīdzinājumam.
Piezīme. Tas netiek izmantots Python 3.x versijā.
Funkcija set() un operators ==
Python set() funkcija manipulēt ar sarakstu komplektā, nerūpējoties par elementu secību. Turklāt, lai salīdzinātu saraksta datu vienības, mēs izmantojam operatoru vienāds ar operatoru (==). Sapratīsim šādu piemēru.
ipconfig uz Ubuntu
Piemērs -
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')
Izvade:
The list1 and list2 are equal
Paskaidrojums:
Iepriekš minētajā piemērā mēs esam paziņojuši, ka šie divi saraksti ir jāsalīdzina viens ar otru. Mēs pārveidojām šos sarakstus komplektā un salīdzinājām katru elementu ar == operatora palīdzību. Visi elementi ir vienādi abos sarakstos, tad, ja bloks tiek izpildīts un izdrukāts rezultāts.
apakšvirkne bash
Sort() metode ar == operatoru
Python kārtot () funkciju izmanto sarakstu kārtošanai. Vienam un tam pašam saraksta elementam ir tāda pati indeksa pozīcija, ko tas nozīmē; saraksti ir vienādi.
Piezīme. Izmantojot metodi sort(), mēs varam nodot saraksta vienumus jebkurā secībā, jo mēs sarakstu kārtojam pirms salīdzināšanas.
Sapratīsim šādu piemēru -
Piemērs -
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')
Izvade:
The list1 and list3 are not the same The list1 and list2 are not the same
Funkcija collection.counter()
Kolekcijas modulis nodrošina skaitītājs (), kas efektīvi salīdzina sarakstu. Tas saglabā datus vārdnīcas formātā un uzskaita saraksta vienumu biežumu.
mūrnieka formula
Piezīme. Šajā funkcijā saraksta elementu secībai nav nozīmes.
Piemērs -
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')
Izvade:
The lists list1 and list2 are not the same The lists list1 and list3 are the same
Samazināt () un map ()
The karte () funkcija pieņem funkciju un Python iterējamo objektu (saraksts, virkne, virkne utt.) kā argumentus un atgriež kartes objektu. Funkcija ievieš katru saraksta elementu un rezultātā atgriež iteratoru.
Turklāt The samazināt () metode rekursīvi realizē doto funkciju iterējamam objektam.
Šeit mēs izmantosim abas metodes kombinācijā. The karte () funkcija ieviestu funkciju (tā var būt lietotāja definēta vai lambda funkcija) katram iterējamam objektam un samazināt () funkciju, kas tiktu piemērota rekursīvā veidā.
Piezīme. Mums ir jāimportē functool modulis, lai izmantotu funkciju samazināt().
Sapratīsim šādu piemēru.
Piemērs -
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')
Izvade:
java uz json objektu
The list1 and list2 are not the same The list1 and list3 are the same
Šajā sadaļā mēs esam apskatījuši dažādas metodes divu Python sarakstu salīdzināšanai.