logo

String-Listen in Python subtrahieren

In Python ist ein String eine Folge von Zeichen und eine Liste eine Sammlung von Elementen, die einen beliebigen Datentyp haben können, einschließlich Strings. Subtraktion Bei der Erstellung einer String-Liste werden Elemente entfernt, die beiden gemeinsam sind Listen oder Saiten .

Um eine Stringliste von einer anderen zu subtrahieren, können Sie die verwenden 'Satz' Datentyp in Python. Der Set-Datentyp ist eine ungeordnete Sammlung eindeutiger Elemente. Der Subtraktionsoperator '-' kann zwischen zwei Mengen verwendet werden, um die Elemente in der ersten Menge zu finden, die in der zweiten Menge nicht vorhanden sind.

Beispiel:

Hier ist ein Beispiel für das Subtrahieren einer Zeichenfolgenliste von einer anderen mithilfe des festgelegten Datentyps:

 list1 = ['apple', 'banana', 'cherry', 'orange'] list2 = ['banana', 'orange', 'kiwi'] result = list(set(list1) - set(list2)) print(result) 

Ausgabe:

Konvertierung einer Zeichenfolge in eine Ganzzahl in Java
 ['apple', 'cherry'] 

Im obigen Beispiel definieren wir zwei Listen: 'Blatt1' Und 'list2' . Danach konvertieren wir jede Liste mithilfe von in eine Menge 'Satz' Funktion in Python. Danach verwenden wir die '-' Operator zum Subtrahieren der Elemente von 'list2' aus 'Blatt1' . Schließlich konvertieren wir die resultierende Menge mithilfe von wieder in eine Liste 'Liste' Funktion in Python.

Dadurch entsteht eine neue Liste 'Ergebnis' das die Elemente von enthält 'Blatt1' die nicht vorhanden sind 'list2' , was in diesem Fall der Fall ist 'Apfel' Und 'Kirsche' .

Beispiel:

Hier ist ein weiteres Beispiel, das zeigt, wie man eine Liste von Zeichenfolgen von einer einzelnen Zeichenfolge subtrahiert:

 string1 = 'Hello world!' list1 = ['o', 'l', 'd'] result = ''.join([char for char in string1 if char not in list1]) print(result) 

Ausgabe:

Wie viele Tasten haben Tastaturen?
 'He wr!' 

Im obigen Beispiel definieren wir eine Zeichenfolge 'string1' und eine Liste von Zeichenfolgen 'Blatt1' . Danach verwenden wir ein Listenverständnis, um jedes Zeichen in zu durchlaufen 'string1' und prüfen Sie, ob es vorhanden ist 'Blatt1' . Wenn der Charakter nicht drin ist 'Blatt1' , fügen wir es mit dem zu einer neuen Liste hinzu 'verbinden' Methode. Abschließend wandeln wir die resultierende Liste wieder in einen String um.

Dadurch entsteht eine neue Zeichenfolge 'Ergebnis' das nur die Zeichen von enthält 'string1' die nicht vorhanden sind 'Blatt1' , was in diesem Fall der Fall ist 'H', 'e', ​​​​'', 'w' , Und 'R' .

Es ist zu beachten, dass die Reihenfolge der Elemente in der resultierenden Liste oder Zeichenfolge möglicherweise nicht beibehalten wird. Wenn Sie die Reihenfolge beibehalten müssen, können Sie ein Listenverständnis mit einem verwenden 'Wenn' Anweisung, um die Elemente herauszufiltern, die in der zweiten Liste vorhanden sind.

Konvertieren einer Ganzzahl in eine Zeichenfolge

Beispiel:

 list1 = ['apple', 'banana', 'cherry', 'orange'] list2 = ['banana', 'orange', 'kiwi'] result = [item for item in list1 if item not in list2] print(result) 

Ausgabe:

 ['apple', 'cherry'] 

Im obigen Beispiel definieren wir zwei Listen: 'Blatt1' Und 'list2' . Danach verwenden wir ein Listenverständnis, um jedes Element in zu durchlaufen 'Blatt1' und prüfen Sie, ob es vorhanden ist 'list2' . Wenn das Element nicht vorhanden ist 'list2' , wir fügen es einer neuen Liste hinzu. Abschließend drucken wir die resultierende Liste aus, die die Elemente von enthält 'Blatt1' die nicht vorhanden sind 'list2' .

Einige weitere Informationen:

Datentypen festlegen vs. auflisten:

Wie bereits erwähnt, empfiehlt es sich beim Subtrahieren von String-Listen, die Listen in Mengen umzuwandeln. Dies liegt daran, dass Mengen dafür optimiert sind, das Vorhandensein von Elementen zu überprüfen und Duplikate zu entfernen. Wenn es jedoch wichtig ist, die Reihenfolge der Elemente beizubehalten, ist es möglicherweise besser, stattdessen ein Listenverständnis zu verwenden.

Überlegungen zur Leistung:

Das Konvertieren von Listen in Mengen kann ein rechenintensiver Vorgang sein, insbesondere bei großen Listen. Wenn die Leistung ein Problem darstellt, sollten Sie alternative Ansätze wie Listenverständnis oder einen Generatorausdruck in Betracht ziehen.

mamta kulkarni

Wandlungsfähigkeit:

Es ist wichtig zu beachten, dass es sich um Sets handelt veränderlich , während Zeichenfolgen und Tupel (die auch als iterierbare Datentypen verwendet werden können) nicht. Das bedeutet, dass, wenn man eine Menge von einer anderen Menge subtrahiert, die resultierende Menge gleich ist veränderlich , und Sie können seinen Inhalt ändern. Wenn Sie andererseits eine Liste oder ein Tupel von einer anderen Liste oder einem anderen Tupel subtrahieren, ist die resultierende Liste oder das resultierende Tupel nicht veränderbar und Sie können ihren Inhalt nicht ändern.

Verschachtelte Listen:

Wenn Sie mit verschachtelten Listen arbeiten, müssen Sie möglicherweise eine verschachtelte Schleife oder Rekursion verwenden, um eine Liste von einer anderen zu subtrahieren. Hier ist ein Beispiel:

 list1 = [['apple', 'banana'], ['cherry', 'orange']] list2 = [['banana', 'kiwi'], ['cherry', 'pear']] result = [] for sublist1, sublist2 in zip(list1, list2): subresult = [item for item in sublist1 if item not in sublist2] result.append(subresult) print(result) 

Ausgabe:

 [['apple'], ['orange']] 

Im obigen Beispiel definieren wir zwei verschachtelte Listen: 'Blatt1' Und 'list2' . Danach verwenden wir eine for-Schleife, um jedes Paar von Unterlisten zu durchlaufen 'Blatt1' Und 'list2' . Wir verwenden ein Listenverständnis, um die Elemente jeder Unterliste zu subtrahieren 'list2' aus der entsprechenden Unterliste in ' Blatt1' . Abschließend hängen wir die resultierenden Unterlisten an eine neue Liste an 'Ergebnis' .