Strings mit spezifischem Inhalt filtern
In dieser Programmierfrage suchen wir nach einer Lösung, um eine Liste von Strings basierend auf ihrem Inhalt zu filtern. Ausgehend von einer Liste wie ['a', 'ab', 'abc', 'bac'] besteht unser Ziel darin, eine Liste zu extrahieren, die nur Zeichenfolgen mit einer bestimmten Teilzeichenfolge enthält, z. B. 'ab'.
Python-Implementierung
Um diese Filterung in Python zu erreichen, können wir verschiedene Methoden anwenden. Ein effizienter Ansatz beinhaltet die Verwendung von Listenverständnissen:
<code class="python">lst = ['a', 'ab', 'abc', 'bac'] result = [k for k in lst if 'ab' in k] # Result: ['ab', 'abc']</code>
In diesem Code durchlaufen wir die ursprüngliche Liste mithilfe eines Verständnisses und prüfen mithilfe des Operators „in“, ob jede Zeichenfolge die Teilzeichenfolge „ab“ enthält. Nur Zeichenfolgen, die diese Bedingung erfüllen, werden in die Ergebnisliste aufgenommen.
Eine weitere Möglichkeit besteht darin, die Filterfunktion zu nutzen:
Python 2:
<code class="python">from itertools import ifilter lst = ['a', 'ab', 'abc', 'bac'] result = ifilter(lambda k: 'ab' in k, lst) # Result: ['ab', 'abc']</code>
Python 3:
<code class="python">lst = ['a', 'ab', 'abc', 'bac'] result = list(filter(lambda k: 'ab' in k, lst)) # Result: ['ab', 'abc']</code>
In Python 3 gibt der Filter einen Iterator zurück. Um eine Liste zu erhalten, wandeln wir sie explizit mit der Funktion list() um. Während die Filterfunktion eine weitere Möglichkeit zum Filtern bietet, gelten Listenverständnisse im Allgemeinen als prägnanter und effizienter für diese Art von Vorgang.
Das obige ist der detaillierte Inhalt vonWie filtere ich Strings basierend auf bestimmten Teilstring-Inhalten in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!