2016-04-07 16 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) 

私はOTHER.AU [X]をスキップしながら上記のTEXT.NA [Y] ABCを印刷するように期待していた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

関連する問題