logo

Python | Schnittpunkt zweier Listen

Der Schnittpunkt zweier Listen bedeutet, dass wir alle Elemente, die beiden ursprünglichen Listen gemeinsam sind, in einer anderen Liste speichern müssen. Nun gibt es in Python verschiedene Möglichkeiten, mit denen wir den Schnittpunkt der Listen durchführen können.
Beispiele:

Input : lst1 = [15, 9, 10, 56, 23, 78, 5, 4, 9] lst2 = [9, 4, 5, 36, 47, 26, 10, 45, 87] Output : [9, 10, 4, 5] Input : lst1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] lst2 = [9, 9, 74, 21, 45, 11, 63, 28, 26] Output : [9, 11, 26, 28]>

Methode 1:
Dies ist die einfachste Methode, bei der wir keine integrierten Funktionen verwendet haben.



Python3




Float zum String



# Python program to illustrate the intersection> # of two lists in most simple way> def> intersection(lst1, lst2):> >lst3>=> [value>for> value>in> lst1>if> value>in> lst2]> >return> lst3> # Driver Code> lst1>=> [>4>,>9>,>1>,>17>,>11>,>26>,>28>,>54>,>69>]> lst2>=> [>9>,>9>,>74>,>21>,>45>,>11>,>63>,>28>,>26>]> print>(intersection(lst1, lst2))>



>

>

Ausgabe:

[9, 11, 26, 28]>

Methode 2:
Diese Methode beinhaltet die Verwendung von set()-Methode .

Python3




# Python program to illustrate the intersection> # of two lists using set() method> def> intersection(lst1, lst2):> >return> list>(>set>(lst1) &>set>(lst2))> # Driver Code> lst1>=> [>15>,>9>,>10>,>56>,>23>,>78>,>5>,>4>,>9>]> lst2>=> [>9>,>4>,>5>,>36>,>47>,>26>,>10>,>45>,>87>]> print>(intersection(lst1, lst2))>

>

>

Ausgabe:

[9, 10, 4, 5]>

Die zeitliche Komplexität des obigen Programms beträgt O(n), wobei n die Länge der längeren Liste zwischen lst1 und lst2 ist.

Die räumliche Komplexität des Programms beträgt O(n), wobei n die Länge der kleineren Liste zwischen lst1 und lst2 ist.

Methode 3:
Bei dieser Methode haben wir set() die größere Liste und verwenden Sie dann die integrierte Funktion namens Überschneidung() um die Schnittmenge zu berechnen. Überschneidung() ist ein erstklassiger Bestandteil des Sets.

Python3




# Python program to illustrate the intersection> # of two lists using set() and intersection()> def> Intersection(lst1, lst2):> >return> set>(lst1).intersection(lst2)> > # Driver Code> lst1>=> [>4>,>9>,>1>,>17>,>11>,>26>,>28>,>28>,>26>,>66>,>91>]> lst2>=> [>9>,>9>,>74>,>21>,>45>,>11>,>63>]> print>(Intersection(lst1, lst2))>

>

>

Ausgabe:

{9, 11}>

Methode 4:
Durch die Verwendung dieser Hybridmethode die Komplexität des Programms fällt auf O(n). Dies ist eine effiziente Möglichkeit, das folgende Programm auszuführen.

Python3




# Python program to illustrate the intersection> # of two lists> def> intersection(lst1, lst2):> ># Use of hybrid method> >temp>=> set>(lst2)> >lst3>=> [value>for> value>in> lst1>if> value>in> temp]> >return> lst3> # Driver Code> lst1>=> [>9>,>9>,>74>,>21>,>45>,>11>,>63>]> lst2>=> [>4>,>9>,>1>,>17>,>11>,>26>,>28>,>28>,>26>,>66>,>91>]> print>(intersection(lst1, lst2))>

>

>

Ausgabe:

[9, 9, 11]>

Methode 5:
Hier wird die Schnittmenge über Unterlisten innerhalb anderer Listen durchgeführt. Hier haben wir das Konzept von verwendet Filter().

Python3




# Python program to illustrate the intersection> # of two lists, sublists and use of filter()> def> intersection(lst1, lst2):> >lst3>=> [>list>(>filter>(>lambda> x: x>in> lst1, sublist))>for> sublist>in> lst2]> >return> lst3> # Driver Code> lst1>=> [>1>,>6>,>7>,>10>,>13>,>28>,>32>,>41>,>58>,>63>]> lst2>=> [[>13>,>17>,>18>,>21>,>32>], [>7>,>11>,>13>,>14>,>28>], [>1>,>5>,>6>,>8>,>15>,>16>]]> print>(intersection(lst1, lst2))>

>

>

Arbeiten: Der Filterteil nimmt das Element jeder Unterliste und prüft, ob es in der Quellliste enthalten ist. Das Listenverständnis wird für jede Unterliste in Liste2 ausgeführt.
Ausgabe:

[[13, 32], [7, 13, 28], [1, 6]]>

Methode 6: Verwenden von Reduce():
Algorithmus:

  1. Importieren Sie die Reduzierungsfunktion aus dem Functools-Modul.
  2. Definieren Sie zwei Listen.
  3. Initialisieren Sie den Variablenschnittpunkt mit einer leeren Liste.
  4. Verwenden Sie die Funktion „Reduzieren“, um die Elemente von lst1 zu durchlaufen.
  5. Überprüfen Sie innerhalb der Lambda-Funktion, ob das aktuelle Element in lst2 und nicht bereits in der Schnittmengenliste vorhanden ist.
  6. Wenn dies der Fall ist, fügen Sie das aktuelle Element zur Schnittpunktliste hinzu.
  7. Gibt die Kreuzungsliste zurück.
  8. Drucken Sie die Kreuzungsliste aus.

Python3




from> functools>import> reduce> lst1>=> [>15>,>9>,>10>,>56>,>23>,>78>,>5>,>4>,>9>]> lst2>=> [>9>,>4>,>5>,>36>,>47>,>26>,>10>,>45>,>87>]> intersection>=> reduce>(>lambda> acc, x: acc>+> [x]>if> x>in> lst2>and> x>not> in> acc>else> acc, lst1, [])> print>(intersection)> #This code is contributed by Rayudu.>

>

>

Ausgabe

[9, 10, 5, 4]>

Zeitkomplexität: O(n^2), wobei n die Länge von lst1 ist.
Raumkomplexität: O(n), wobei n die Länge von lst1 ist.