ファイルを 1 行ずつ読み込んでいて、必要に応じて line.split(',') で区切りました。ここで、フラグを立てたり、リストにコピーしたり、次の機能を実行したりします。
文字列「THIS」を含み、「THAT」を含まない行。
私は次のようなものを撮影しています:
if any(('THIS' in s for s in csvLine) if any('THAT' **!in** s for s in csvLine):
print csvLine
しかし、これはまったく良い構文ではありません。私はリスト内包表記を使用して頭を悩ませていると思いますが、この回答のおかげで以前に成功しました。
私は以下のコードで実用的な解決策を持っていますが、もっと良いものがあると感じています:
if any('THAT' in s for s in csvLine):
print "do nothing"
elif any('THIS' in s for s in csvLine):
print "do something"
else:
print "do nothing"
これらの if-else ステートメントのロジックを、より美しい Pythonic コードに圧縮するにはどうすればよいですか?
これは私の実際の、一般化されていない平易な英語の質問です。行に CHAT と TRANSFER が含まれている場合、それは重要ではありません。CHAT のみが含まれている場合は、重要ではありません。CHAT という単語ではなく TRANSFER だけが含まれている場合は注目に値するので、この行を何とかしたいと思います。TRANSFER という単語が含まれているが、CHAT が含まれていない行を見つけるにはどうすればよいですか?