Pārbaudīt, vai Python saraksta elements satur virkni, kas atrodas citā virknē

Man ir saraksts:

my_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

un gribu meklēt vienumus, kas satur virkni 'abc'. Kā es to varu izdarīt?

if 'abc' in my_list:

pārbaudītu, vai 'abc' sarakstā pastāv, bet tā ir daļa no 'abc-123' un 'abc-456', 'abc' atsevišķi neeksistē. Kā es varu iegūt visus elementus, kas satur 'abc'?

Risinājums

Ja vēlaties pārbaudīt tikai abc klātbūtni jebkurā sarakstā esošajā rindā, varat izmēģināt.

some_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
if any("abc" in s for s in some_list):
    # whatever

Ja patiešām vēlaties iegūt visus elementus, kas satur abc, izmantojiet

matching = [s for s in some_list if "abc" in s]
Komentāri (17)
x = 'aaa'
L = ['aaa-12', 'bbbaaa', 'cccaa']
res = [y for y in L if x in y]
Komentāri (0)
any('abc' in item for item in mylist)
Komentāri (0)