A Python által elég könnyen kezelhető és már sokszor kezelt klasszikus probléma az, hogy egy karakterlánc egy másik részláncának a megtalálása. De néha ezt szeretnénk kiterjeszteni a stringek listájára, és ezért ilyenkor a teljes konténer bejárására és az általános algoritmus végrehajtására van szükség.
Beszéljünk bizonyos módszerekről, amelyekkel listában adott részláncú karakterláncokat találhatunk.
Módszer #1 : A listaértés használata
A listaértés elegáns módja bármely adott feladat elvégzésének, mivel hosszú távon növeli az olvashatóságot. Ezt a feladatot naiv módszerrel is el lehet végezni, és így redukálható a listamegértésre is.
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 :
Módszer #2 : filter()
+ lambda használata
Ez a függvény is képes elvégezni ezt a feladatot, a stringek megtalálását lambda segítségével. Csak kiszűri az adott részláncnak megfelelő összes karakterláncot, majd egy új listába helyezi.
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 :
Módszer #3 : re + search()
használata A szabályos kifejezések számos feladat elvégzésére használhatók a pythonban. Ennek a konkrét feladatnak az elvégzéséhez is jól jöhetnek a reguláris kifejezések. A search()
használatával megkeresi az összes egyező részláncot, és visszaadja az eredményt.
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 :
Vélemény, hozzászólás?