モジュール・標準ライブラリ応用問題

re モジュール で複数の正規表現パターンをマッチングする際、同じ文字列に対して compile() で事前コンパイルしたパターンと毎回コンパイルする場合、どのような違いが生じますか?

A.マッチング結果が異なることがある
✗ コンパイル方法に関わらず、マッチング結果は同じです。違いは内部処理効率にあります。
B.処理速度は変わらないが、メモリ使用量が異なる
✗ 事前コンパイルはメモリを消費しますが、複数回使用する場合は処理速度の方が影響が大きくなります。
C.複数回マッチングする場合、事前コンパイルが高速である← 正解
✓ 正解です。compile() で事前コンパイルしたパターンを複数回使用すれば、コンパイルのオーバーヘッドが削減され、再度のコンパイルが不要になるため高速です。
D.毎回コンパイルする方がキャッシュにより高速になる
✗ re モジュールには自動キャッシュ機構があり、毎回コンパイルしても効率は良いですが、明示的なコンパイルより若干遅延があります。

Python 3 エンジニア認定基礎試験 の問題一覧