Python udostępnia wiele sposobów porównywania obu list. Porównanie to proces polegający na porównaniu elementów danych z innym elementem danych na liście, niezależnie od tego, czy są takie same, czy nie.
list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal
Poniżej podano metody porównywania dwóch list.
- Funkcja cmp().
- Funkcja set() i operator ==
- Funkcja sort() i operator ==
- Funkcja kolekcja.licznik().
- Funkcje redukcji() i map().
Funkcja cmp().
The Pyton cmp() porównuje dwa obiekty Pythona i zwraca wartości całkowite -1, 0, 1 zgodnie z porównaniem.
Uwaga - nie używa się go w wersji Python 3.x.
Funkcja set() i operator ==
Pyton ustawić() funkcjonować manipuluj listą w zestawie, nie dbając o kolejność elementów. Poza tym używamy operatora równości (==) do porównywania elementów danych na liście. Rozumiemy następujący przykład.
Przykład -
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')
Wyjście:
The list1 and list2 are equal
Wyjaśnienie:
W powyższym przykładzie zadeklarowaliśmy, że dwie listy mają być ze sobą porównywane. Przekonwertowaliśmy te listy na zbiór i porównaliśmy każdy element za pomocą operatora ==. Wszystkie elementy są równe na obu listach, więc jeśli blok zostanie wykonany i wydrukowany zostanie wynik.
Metoda sort() z operatorem ==
Pyton sortować() funkcja służy do sortowania list. Elementy tej samej listy mają tę samą pozycję indeksu; listy są równe.
Uwaga - W metodzie sort() możemy przekazywać elementy listy w dowolnej kolejności, ponieważ sortujemy listę przed porównaniem.
Rozumiemy następujący przykład -
Przykład -
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')
Wyjście:
The list1 and list3 are not the same The list1 and list2 are not the same
Funkcja kolekcja.licznik().
Moduł kolekcji udostępnia lada(), które skutecznie porównują listę. Przechowuje dane w formacie słownikowym: i zlicza częstotliwość elementów listy.
Uwaga - Kolejność elementów listy nie ma w tej funkcji znaczenia.
Przykład -
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')
Wyjście:
The lists list1 and list2 are not the same The lists list1 and list3 are the same
Redukcja() i map()
The mapa() funkcja przyjmuje funkcję i obiekt iterowalny w języku Python (lista, krotka, ciąg znaków itp.) jako argumenty i zwraca obiekt mapy. Funkcja implementuje każdy element listy i w rezultacie zwraca iterator.
Poza tym The zmniejszyć() metoda implementuje daną funkcję do iterowalnego obiektu rekurencyjnie.
Tutaj użyjemy obu metod w połączeniu. The mapa() funkcja zaimplementuje tę funkcję (może to być funkcja zdefiniowana przez użytkownika lub funkcja lambda) do każdego iterowalnego obiektu, a zmniejszyć() zajmij się tą funkcją, która miałaby zastosowanie w sposób rekurencyjny.
Uwaga - Aby skorzystać z funkcji redukcji(), musimy zaimportować moduł functool.
Rozumiemy następujący przykład.
Przykład -
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')
Wyjście:
The list1 and list2 are not the same The list1 and list3 are the same
W tej sekcji omówiliśmy różne metody porównywania dwóch list w Pythonie.