Pythona | Różnica między dwiema listami

W programowaniu w języku Python porównywanie dwóch list jest częstym zadaniem wymagającym wielu podejść. W tym artykule omówiono różne metody uzyskiwania odmienności między dwiema listami, zwiększając Twoją biegłość w obsłudze list i porównywaniu danych w Pyton . Dołącz do nas w tej wnikliwej podróży po różnych strategiach rozpoznawania różnic między listami.

Przykład

  Input:   list1 = [10, 15, 20, 25, 30, 35, 40] list2 = [25, 40, 35]   Output:   [10, 15, 20, 30]   Explanation:   resultant list = list1 - list2 

Notatka: Jeśli masz wiele takich samych elementów, to nie zadziała. W takim przypadku ten kod po prostu usunie te same elementy.
W takim przypadku możesz zachować liczbę każdego elementu na obu listach.

Sposoby porównywania dwóch list w Pythonie

Istnieją różne sposoby porównywania dwóch list w Pythonie. W tym miejscu omawiamy niektóre powszechnie stosowane metody porównywania dwóch list w Pythonie.

  • Użyj w metodzie
  • Korzystanie ze zrozumienia list
  • Używać ustawić() Funkcjonować
  • Używać Numpy
  • Za pomocą zamek błyskawiczny() Funkcjonować
  • Zliczaj wystąpienia za pomocą Lada

Python w słowie kluczowym do porównywania dwóch list w Pythonie

W tym przykładzie kod iteruje po elementach listy „li1” i dołącza każdy element do „temp3”, jeśli nie ma go na liście „li2”. Końcowy wynik w `temp3` zawiera elementy z `li1`, których nie ma w `li2`.

Python3




li1> => [> 10> ,> 15> ,> 20> ,> 25> ,> 30> ,> 35> ,> 40> ]> li2> => [> 25> ,> 40> ,> 35> ]> temp3> => []> for> element> in> li1:> > if> element> not> in> li2:> > temp3.append(element)> print> (temp3)>

Wyjście

[10, 15, 20, 30] 

Różnica między dwiema listami w Pythonie przy użyciu rozumienia list

W tym przykładzie kod tworzy zestaw „s” z elementów listy „li2”, a następnie generuje nową listę „temp3” zawierającą elementy z listy „li1”, których nie ma w zestawie „s”. Na koniec wypisuje elementy w „temp3”.

Python3




li1> => [> 10> ,> 15> ,> 20> ,> 25> ,> 30> ,> 35> ,> 40> ]> li2> => [> 25> ,> 40> ,> 35> ]> s> => set> (li2)> temp3> => [x> for> x> in> li1> if> x> not> in> s]> print> (temp3)>

Wyjście

[10, 15, 20, 30] 

Znajdź różnicę między dwiema listami w Pythonie za pomocą set()

W tej metodzie jawnie konwertujemy listy na zestawy, a następnie po prostu redukujemy je za pomocą operatora odejmowania. Aby uzyskać więcej referencji, odwiedź plan zdjęciowy Zestawy w Pythonie . Jest to podobna technika, którą stosowaliśmy wcześniej. Jedyna różnica polega na tym, że zastąpiliśmy zagnieżdżone pętle zrozumienie listy składnia.

Python3




li1> => [> 10> ,> 15> ,> 20> ,> 25> ,> 30> ,> 35> ,> 40> ]> li2> => [> 25> ,> 40> ,> 35> ]> s> => set> (li2)> temp3> => [x> for> x> in> li1> if> x> not> in> s]> print> (temp3)>

Wyjście

[10, 15, 20, 30] 

Użyj Numpy do Porównaj dwie listy w Pythonie

The numpy.concatenate() funkcja łączy sekwencję tablic wzdłuż istniejącej osi. W tym przykładzie kod używa NumPy do tworzenia tablic `li1` i `li2`, znajduje ustawione różnice między nimi (`dif1` i `dif2`) i łączy te różnice w jedną listę (`temp3`), na koniec wyświetlając wynik.

Python3




import> numpy as np> li1> => np.array([> 10> ,> 15> ,> 20> ,> 25> ,> 30> ,> 35> ,> 40> ])> li2> => np.array([> 25> ,> 40> ,> 35> ])> dif1> => np.setdiff1d(li1, li2)> dif2> => np.setdiff1d(li2, li1)> temp3> => np.concatenate((dif1, dif2))> print> (> list> (temp3))>

Wyjście

[10, 15, 20, 30] 

Porównaj dwie listy w Pythonie za pomocą funkcji zip().

W tym przykładzie kod porównuje odpowiednie elementy dwóch list, li1 i li2, i tworzy listę wartości logicznych wskazujących, czy elementy są równe. Funkcja „all” sprawdza, czy wszystkie elementy na liście wyników mają wartość True.

Python3




li1> => [> 10> ,> 15> ,> 20> ]> li2> => [> 25> ,> 40> ,> 35> ]> result> => [a> => => b> for> a, b> in> zip> (li1, li2)]> print> (> all> (result))>

Wyjście

False 

Porównaj dwie listy za pomocą licznika wystąpień

W tym przykładzie kod wykorzystuje klasę `Counter` z modułu `collections` do utworzenia liczników częstotliwości dla dwóch list, `li1` i `li2`. Następnie porównuje liczniki, aby sprawdzić, czy listy zawierają te same elementy z tą samą częstotliwością, przypisując wynik do `are_lists_equal`.

Python3




from> collections> import> Counter> li1> => [> 10> ,> 15> ,> 20> ,> 25> ,> 30> ,> 35> ,> 40> ]> li2> => [> 25> ,> 40> ,> 35> ]> counter1> => Counter(li1)> counter2> => Counter(li2)> are_lists_equal> => counter1> => => counter2> print> (are_lists_equal)>

Wyjście

False