2016-07-17 33 views
-1

リストのforループを実行しています。すべての単一の文字列、私は.findしたいが、代わりに.find文字列の1つの項目を、私は私のリスト内の何かの文字列をチェックしたい。文字列にリスト要素が含まれていないか確認してください。

たとえば、

checkfor = ['this','that','or the other'] 

はその後

のstring.Find(checkfor)、または何かをするので、私はこれを行うにはしたいと思います:

if email.find(anything in my checkforlist) == -1: 
    do action 
+1

あなたはそのリスト内のすべての位置を見つけようとしていますか、そのリスト内の何かがあなたの文字列に含まれているかどうかチェックしようとしていますか? –

答えて

0

私は私の中に何のためにその文字列をチェックしますリスト

Pythonにはinがあります。

for s in checkfor: 
    if s in email: 
     # do action 
0

これを達成するためにリストの理解を試みることができます。

occurrences = [i for i, x in enumerate(email) if x =='this'] 
0

in句使用:あなただけのリスト内の少なくとも1つの値が文字列に存在するかどうかを知りたい場合は、それを行うための簡単な方法は次のようになり

If checkfor not in email: 
    do_some_thing() 
0

を:

any(email.find(check) > -1 for check in checkfor) 

あなたがそれらのすべてが文字列内に存在することを確認したい場合は、次に行う

all(email.find(check) > -1 for check in checkfor) 

それとも、あなたが行うことができ、文字列に一致するものを持っていた正確な値たい場合:

matches = [match for match in checkfor if email.find(match) > -1] 

を私が使用することを好むだろう:

check in email 

email.find(check) > -1 

オーバーしかし、私はそれがあなたのユースケースに依存すると思う(上記の例はおそらく inオペレータで良く見えるだろう)。

場合によっては、regular expressionsを使用することをお勧めしますが、ここでは取り上げません。

関連する問題