2012-10-07 2 views

답변

0
반드시

하지 더 나은,하지만 그들이있어 oneliners :

a = ['ava','olivia','hannah','olivia'] 
b = ['aa','ab','ac','av'] 

result = filter(None, map(lambda x: x if any(map(lambda y: y in x, b)) else None, a)) 
print result 

나 :

result2 = filter(None, [x if y in x else None for x in a for y in b]) 
print result3 

나 :

result3 = filter(None, [x if any([y in x for y in b]) else None for x in a]) 
print result2 
+2

이들은 읽기 쉽습니다. –

5

이 충분하다 :

print [word for word in a if any(part in word for part in b)] 

filter, map 또는 lambda을 사용할 필요가 없습니다.

+0

실제로이 모양이 더 좋게 보입니다. +1 – andrean

+0

#output [ 'ava'], –

관련 문제