Verifique se um item da lista Python contém uma cadeia dentro de outra cadeia

Eu tenho uma lista:

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

e quer procurar por itens que contenham a string 'abc'. Como eu posso fazer isso?

if 'abc' in my_list:

verificaria se 'abc' existe na lista, mas faz parte de 'abc-123' e 'abc-456', 'abc' não existe por si só. Então como posso obter todos os itens que contêm 'abc' ?

Solução

Se você quiser apenas verificar a presença de abc em qualquer string da lista, você poderia tentar

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

Se você realmente quer obter todos os itens que contêm abc, utilize

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