Problema clasică care poate fi tratată destul de ușor de Python și care a fost tratată de multe ori este de a găsi dacă un șir este subșirul al altuia. Dar, uneori, se dorește să se extindă acest lucru pe o listă de șiruri de caractere și, prin urmare, atunci este necesară parcurgerea întregului container și efectuarea algoritmului generic.
Să discutăm anumite modalități de a găsi șiruri de caractere cu o anumită subșir în listă.
Metoda #1 : Utilizarea înțelegerii listei
Comprehensiunea listei este o modalitate elegantă de a efectua orice sarcină particulară, deoarece crește lizibilitatea pe termen lung. Această sarcină poate fi realizată utilizând metoda naivă și, prin urmare, poate fi redusă și la înțelegerea listei.
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 :
Metoda nr. 2 : Folosind filter()
+ lambda
Această funcție poate, de asemenea, să îndeplinească această sarcină de căutare a șirurilor de caractere cu ajutorul lambda. Pur și simplu filtrează toate șirurile care corespund unei anumite subșiruri și apoi le adaugă într-o nouă listă.
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 :
Metoda #3 : Folosind re + search()
Expresiile regulate pot fi folosite pentru a efectua multe sarcini în python. Pentru a efectua această sarcină particulară, de asemenea, expresiile regulate pot veni la îndemână. Aceasta găsește toate subșirurile care se potrivesc folosind search()
și returnează rezultatul.
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 :
Lasă un răspuns