suppose I have two string list:
a=['ab','ac','ad']
b=['abcd','baa','bacd','bbaa']
and I want to know if each element of list b has any of strings in a as its substring. The correct result should be: [True,False,True,False]. How do I code this?
You can use built-in function any
within a list comprehension:
>>> [any(i in j for i in a) for j in b]
[True, False, True, False]
i in j for i in a
generates a series of Boolean objects (i in j
which checks if i
exist in j
) and any
does what's explained in documentation on those objects and returns one Boolean object in result. This process repeats with for j in b
.