2016-04-01 4 views
-3

リスト内の単語が特定のテキストに含まれているかどうかを知るために、if any(word in 'x' for word in list):をサイクルに使用していました言葉のないものを捨てなさい。それはかなりうまく動作していましたが、数ヶ月前から条件式が常に正の結果を出し始めました。例えばリスト内の単語が「x」の単語である場合:うまく機能しない

list=['home','cat'] 
if any(word in "my home is red" for word in list): 
    print "YES" 
YES 
if any(word in "my hair is red" for word in list): 
    print "YES" 
YES 

しかし、第2の条件は、私に陰性の結果を表示するようになっています。以前のコードでは何も変更していませんでしたが、とにかく誰かが私を助けることができるばかげたミスをすることができますか?

+4

を取得します。最初の 'any'は' True'を返し、二番目は 'False'を返します。 – idjaw

+4

numPyを使用しているか、' numpy import * 'から自動実行するように設定していますか? – user2357112

+0

一般的に、 'list'で行ったように予約語を無効にするのは悪い習慣です。よりわかりやすい名前を使用してください。 –

答えて

0

2番目の「YES」は2番目の行に含まれていますか?私はこれを実行すると、コードが

mylist=['home','cat'] 
if any(word in "my home is red" for word in mylist): 
    print "YES" 
else: 
    print "NO" 

if any(word in "my hair is red" for word in mylist): 
    print "YES" 
else: 
    print "NO" 

に変更し、私はそれが希望期待通り、このコードが実行されている

YES 
NO 
関連する問題