2016-07-22 2 views
2

Проверьте, если элемент списка аа строкаПроверьте, если элемент списка в строке

У меня есть список ключевых слов:

check_list = ['aaa','bbb','ccc'] 

и группа строк:

test_string_1 = 'hellor world ccc' 
test_string_2 = 'hellor world 2' 

И я хочу, чтобы проверить, если какой-либо из элементов списка в строке

for key in check_list: 
    if key in test_string_1: 
     print 'True' 

Но вместо того, чтобы печатать возвращаемое значение Истина или Ложь

Так что я могу это сделать:

if some_conditions or if_key_value_in_test_string: 
    do something 

ответ

3

Если я понимаю, право, что вы хотите, вы можете сделать:

def test(check_list, test_string) 
    for key in check_list: 
     if key in test_string: 
      return True 
    return False 

или в одной строке вы можете сделать:

any([key in test_string for key in check_list]) 

или использовать роды тор экспрессии, что может быть полезно для длинных списков, так как это будет короткое замыкание (то есть, остановиться на первом True без создания полного списка первый):

any(key in test_string for key in check_list) 
+0

Yeap, вот что я хочу. Нужно ли определять функцию? или это можно сделать, используя понимание списка? –

+2

@LuisRamonRamirezRodriguez: вы можете использовать что-то вроде 'any ([1 in i for i in [[2,3], [4,5], [1,7]]]). – tom10

2

использовать встроенные функции

>>> check_list = ['aaa','bbb','ccc'] 
>>> test_string_1 = 'hellor world ccc' 
>>> test_string_2 = 'hellor world 2' 
>>> any([(element in test_string_1) for element in check_list]) 
True 
>>> any([(element in test_string_2) for element in check_list]) 
False 
>>> 
Смежные вопросы