Das klassische Problem, das sich mit Python recht einfach lösen lässt und auch schon oft behandelt wurde, ist das Finden, ob eine Zeichenkette eine Teilzeichenkette einer anderen ist. Aber manchmal möchte man dies auf eine Liste von Zeichenketten ausdehnen und muss dann den gesamten Container durchlaufen und den generischen Algorithmus durchführen.
Lassen Sie uns einige Möglichkeiten erörtern, um Zeichenketten mit einer gegebenen Teilzeichenkette in einer Liste zu finden.
Methode Nr. 1: Listenverständnis
Das Listenverständnis ist ein eleganter Weg, um eine bestimmte Aufgabe auszuführen, da es die Lesbarkeit auf lange Sicht erhöht. Diese Aufgabe kann mit der naiven Methode durchgeführt werden und lässt sich daher auch auf das Listenverständnis reduzieren.
test_list
=
print
(
"The original list is : "
+
str
(test_list))
subs
=
'Geek'
res
=
print
(
"All strings with given substring are : "
+
str
(res))
The original list is : All strings with given substring are :
Methode #2: Verwendung von filter()
+ lambda
Diese Funktion kann auch die Aufgabe erfüllen, die Zeichenketten mit Hilfe von Lambda zu finden. Sie filtert einfach alle Zeichenketten heraus, die mit der bestimmten Teilzeichenkette übereinstimmen, und fügt sie dann in eine neue Liste ein.
test_list
=
print
(
"The original list is : "
+
str
(test_list))
subs
=
'Geek'
res
=
list
(
filter
(
lambda
x: subs
in
x, test_list))
print
(
"All strings with given substring are : "
+
str
(res))
The original list is : All strings with given substring are :
Methode #3 : Mit re + search()
Reguläre Ausdrücke können verwendet werden, um viele Aufgaben in Python auszuführen. Auch für diese spezielle Aufgabe können reguläre Ausdrücke nützlich sein. Es findet alle übereinstimmenden Teilzeichenfolgen mit search()
und gibt das Ergebnis zurück.
import
re
test_list
=
print
(
"The original list is : "
+
str
(test_list))
subs
=
'Geek'
res
=
print
(
"All strings with given substring are : "
+
str
(res))
The original list is : All strings with given substring are :
Schreibe einen Kommentar