リスト内の文字列のいずれかが正規表現と一致するかどうかを確認する必要があります。もしあれば、私は続けたい。Python:リスト内の文字列が正規表現と一致する場合
私は今、かなり非効率的であると認識r = re.compile('.*search.*')
if [line for line in output if r.match(line)]:
do_stuff()
:私は常に過去にそれをやった方法は、のようなもので、リストの内包表記を使用しています。リストの最初の項目が一致すれば、残りの比較をすべてスキップして移動できます。私はこれを改善することができます:
r = re.compile('.*search.*')
for line in output:
if r.match(line):
do_stuff()
break
しかし、これを行うには、より神託の方法がある場合、私は思ったんだけど。
組み込みの 'any()'を使わないのはなぜですか?例: 'any()'がリストを取得し、各要素を 'bool'に変換してから、boolを評価するため、' if any(出力行のre.match(行)) ' – Jkdc
@Jkdcですから、 'any()'が便利になるようにするためには、すべての要素に対して正規表現マッチを行う必要があります。 – ewok
@ewok:いいえ、 'any'は* iterable *を取っています。 jkdcのコードでは、リストではなく、遅延ジェネレータ式が使用されます。 – DSM