Klasycznym problemem, z którym Python radzi sobie dość łatwo i z którym miał do czynienia wiele razy, jest znalezienie, czy ciąg jest podłańcuchem innego ciągu. Ale czasami chce się to rozszerzyć na listę ciągów, a więc wymaga to przejścia przez cały kontener i wykonania ogólnego algorytmu.
Przedyskutujmy pewne sposoby na znalezienie ciągów z danym podłańcuchem na liście.
Metoda #1: Użycie zrozumienia listy
Zrozumienie listy jest eleganckim sposobem na wykonanie konkretnego zadania, ponieważ zwiększa czytelność na dłuższą metę. Zadanie to może być wykonane przy użyciu metody naiwnej, a zatem może być zredukowane do zrozumienia listy, jak również.
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 #2 : Użycie filter()
+ lambda
Ta funkcja również może wykonać to zadanie znajdowania ciągów za pomocą lambdy. Po prostu odfiltrowuje wszystkie ciągi pasujące do danego podłańcucha, a następnie dodaje je do nowej listy.
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 : Użycie re + search()
Wyrażenia regularne mogą być używane do wykonywania wielu zadań w pythonie. Aby wykonać to konkretne zadanie również, wyrażenia regularne mogą się przydać. Znajduje ono wszystkie pasujące podciągi używając search()
i zwraca wynik.
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 :
Dodaj komentarz