2016-12-16 5 views
-2

Мне нужно найти список списков для фразы «ss».Случайный поиск в 2D-списке

Проблема в том, что она может быть капитализирована в любом случае.

С нормальным списком, я знаю, что я мог бы создать цикл и использовать str.lower()

Для itertools, это менее просто. Нет атрибута .lower. Вот код до сих пор:

return(ss in (itertools.chain.from_iterable(result)) 

Кто-нибудь знает способ, что я могу это поиск, игнорируя при этом дело?

+0

'«сс»или«вытеснен» 'только собирается выбрать' 'ss''; не делая то, что вы думаете, –

+0

хорошо, спасибо за обнаружение этой ошибки. Какие советы вы можете предложить? – YesIAmThatGuy

ответ

0

Вы можете использовать any() в этом случае:

my_ss_list = ["ss", "superseded"] 
chained_list = [word.lower() for word in itertools.chain.from_iterable(result)] 
#     ^convert all the words to lower case 

any(ss in chained_list for ss in my_ss_list) 
# returns `True`/`False` based on the occurrence of any of the item 
# of `my_ss_list` in `chained_list` 

ИЛИ, вы можете явно сделать проверку для каждого слова без использования какой-либо как:

"ss" in chained_list or "superseded" in chained_list 
+1

Спасибо Moinuddin, что подход chained_list сделал трюк. Наверное, я не видел деревьев для леса! Спасибо также за список ss, эта ошибка может вызвать проблемы позже. :) – YesIAmThatGuy