Klasickým problémem, který lze v Pythonu poměrně snadno řešit a který byl také mnohokrát řešen, je zjištění, zda je řetězec podřetězcem jiného. Někdy si však člověk přeje rozšířit tuto možnost na seznam řetězců, a proto pak vyžaduje projít celý kontejner a provést obecný algoritmus.

Probereme si některé způsoby, jak najít řetězce s daným podřetězcem v seznamu.

Způsob č. 1 : Použití porozumění seznamu
Porozumění seznamu je elegantní způsob, jak provést nějakou konkrétní úlohu, protože dlouhodobě zvyšuje čitelnost. Tuto úlohu lze provést naivní metodou, a tudíž ji lze redukovat i na porozumění seznamu.

test_list =
print ("The original list is : " + str(test_list))
subs = 'Geek'
res =
print ("All strings with given substring are : " + str(res))



Výstup:

The original list is : All strings with given substring are : 

Metoda č. 2 : Použití filter() + lambda
Tuto úlohu nalezení řetězců lze provést také pomocí funkce lambda. Pouze vyfiltruje všechny řetězce odpovídající danému podřetězci a poté je přidá do nového seznamu.

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))



Výstup:

The original list is : All strings with given substring are : 

Metoda #3 : Použití re + search()
Regulární výrazy lze v pythonu použít k mnoha úlohám. K provedení této konkrétní úlohy se mohou hodit i regulární výrazy. Pomocí search() najde všechny odpovídající podřetězce a vrátí výsledek.

import re
test_list =
print ("The original list is : " + str(test_list))
subs = 'Geek'
res =
print ("All strings with given substring are : " + str(res))



Výstup:

The original list is : All strings with given substring are : 

Štítky článku :