Bu oldukça eski bir soru, ama bu cevabı öneriyorum çünkü önceki cevaplar listede dizeler olmayan öğelerle (ya da bir çeşit yinelenebilir nesne) başa çıkmıyor. Bu tür öğeler, bir liste istisnasıyla liste kavramasının başarısız olmasına neden olur.
Yinelenemeyen öğeleri atlayarak listedeki bu tür öğeleri incelikle ele almak için aşağıdakileri kullanın:
[el for el in lst if isinstance(el, collections.Iterable) and (st in el)]
sonra, böyle bir liste ile:
lst = [None, 'abc-123', 'def-456', 'ghi-789', 'abc-456', 123]
st = 'abc'
eşleşen öğeleri almaya devam edersiniz (['abc-123', 'abc-456']
)
Tekrarlanabilirlik testi en iyi olmayabilir. Buradan anladım: Python'da bir nesnenin yinelenebilir olup olmadığını nasıl belirleyebilirim?