Вы можете попробовать следующее:
list1 = ['jack sparow', 'monika hardan', 'hamid tatan', 'california']
list2 = ['california', 'sparow']
newlist = [[x] for x in list1 for y in list2 if y in x]
print(newlist)
который печатает
[['jack sparow'], ['california']]
ОБНОВЛЕНИЕ
Чтобы получить результат [['jack sparow'], [None], [None], ['california']]
, вы можете попробовать следующее:
def is_partially_contained_in(s, t):
for y in t:
if y in s:
return True
return False
list1 = ['jack sparow', 'monika hardan', 'hamid tatan', 'california']
list2 = ['california', 'sparow']
newlist = [[x] if is_partially_contained_in(x, list2) else [None] for x in list1]
print(newlist)
который печатает
[['jack sparow'], [None], [None], ['california']]