2016-04-07 2 views
0

Я использую Python 3.4.2 на данный момент, но не получаю ожидаемых результатов при попытке поиска нескольких строк в другой строке.Поиск нескольких строк в другой строке с использованием any()

Я создаю набор, содержащий элементы со строковым форматом, похожим на TEXT.NA [Y] ABC. Я пытаюсь только поймать элементы набора, содержащие в качестве примера .NA, .SA или .EU.

testset = set() 
testset.add(('Blah','TEXT.NA[Y]ABC')) 
testset.add(('Bleh','OTHER.AU[X]DEF')) 
region = ['.NA', '.SA', '.EU'] 
for text,key in testset: 
    if any(sym in region for sym in key): 
     print(key) 

Я ожидал, что выше для печати TEXT.NA [Y] ABC, пропуская OTHER.AU [X] DEF Хочет знать, что я делаю неправильно в моей итерации.

Спасибо!

ответ

0

Проверка вашего членства неверна. Вы должны проверить, если любой элемент из region в key:

>>> for text,key in testset: 
...  if any(sym in key for sym in region): 
...   print(key) 
... 
TEXT.NA[Y]ABC 
+0

Ах спасибо, что выглядит, как это сделал трюк. Я понял, как настроить итератор назад. Большое спасибо! – Tabin

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