一部のチャットログから正規表現を使用して情報を抽出したいと考えています。パースされる文字列の形式は03:22:32 PM <b>blcArmadillo</b>
です。私はPythonのtype()コマンドを使用して、可変メッセージが呼び出し可能イテレータであることを確認しました。私の質問は、コール可能なイテレータを最も効率的にナビゲートする方法です。彼らはあなたが単にインデックスを使うことができる配列のようなものですか?データを抽出する唯一の方法は、返された値をループして、以下のコードスニペットに示すようにリストに追加することでした。呼び出し可能イテレータの操作
times = []
messages = re.compile(r'(?P<time>..:..:.. ..).*?<b>(?P<usrname>.*?):</b>').finditer(search)
for result in messages:
times.append(result.group('time'))
もっと効果的なやり方がありますか?助けてくれてありがとう。
>イテレータは、次のメソッドを持つオブジェクトに過ぎません。 Not * quite * true;イテレータには同じイテレータを返す '__iter__'メソッドもあります(イテレータであってもオブジェクトのiterableバージョンを取得するための組み込み 'iter(foo)'関数のための単一のインタフェースが存在するように) )。 – bignose