2014-09-26 5 views
1

У меня есть 2 списка следующим образом:Общие символы внутри строк в 2 списках в Python

a = ["Ron is great", "Mark is good", "Sheela is bad", "Amy is horrible"] 
b = ["Ron", "Mark"] 
c = [item for item in a if item in b] 

Я обычно использую приведенный выше список, чтобы найти понимание общих элементов между 2 lists.However он не в приведенном выше сценарии, что и в функции делает точное совпадение и, следовательно, с пустой list.How я обойти это и попытаться получить список C, который выглядит следующим образом:

c=["Ron is great", "Mark is good"] 

ответ

4

Вам понадобятся две петли, например

c = [item for item in a 
    if any(name in item for name in b)] 

должно быть достаточно.

2

Ваша проблема решена со списком выражений

>>> a = ["Ron is great", "Mark is good", "Sheela is bad", "Amy is horrible"] 
>>> b = ["Ron", "Mark"] 
>>> c= [ 
...  sentence 
...  for word in b 
...  for sentence in a 
...  if word in sentence 
... ]     

['Ron is great', 'Mark is good'] 
1

Вы можете попробовать, как это,

>>> a = ["Ron is great", "Mark is good", "Sheela is bad", "Amy is horrible"] 
>>> b = ["Ron", "Mark"] 
>>> [ item for item in a for word in b if word in item] 
['Ron is great', 'Mark is good'] 
>>> 
+1

Это действительно good..thanks .. – Amistad

Смежные вопросы