2013-04-22 4 views
2

У меня есть список, какКак проверить существование любого значения в списке в питоне

l = ['dd','rr','abcde'] 

l2 = ['ddf','fdfd','123'] 

Я хочу одну функции, которая возвращает истину, если какие-либо из значения из l существует в l2.

Теперь это может быть частичное совпадение. я имею в виду, что строка должна присутствовать в l2

EDIT:

Выход должен быть либо истинным, ложной

Как и в моем примере он должен возвращать верно, потому что dd сопрягает с ddf

+0

Что бы ожидаемый выход для вашего примера? Кроме того, что вы пробовали до сих пор? – cyroxx

+0

Ответ получен здесь http://stackoverflow.com/questions/1388818/how-can-i-compare-two-lists-in-python-and-return-matches и является довольно хорошим решением. – user2307241

+0

@cyroxx выход должно быть либо истинным, либо ложным – user2294401

ответ

5

Это возвращает True, если любое значение от l является подстрокой любого значения в l2:

any(l_value in l2_value for l_value in l for l2_value in l2) 
+0

В последнем предложении я имею в виду, что ваша функция должна давать true, поскольку вывод как 'dd' в l1 совпадает с' ddf' – user2294401

+0

Тогда мой второй пример будет работать. –

0
def match(): 
    for e in l: 
     for e2 in l2: 
      if e in e2: 
       return True 
    else: 
     return False 

Это будет частичное совпадение.

UPDATE: Использование списка понимание:

[re.search(x,",".join(l2)) for x in l if re.search(x,",".join(l2)) is not None] and 'True' or 'False' 
+0

Параллелограмма !!! – jamylak

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