İçeriğe geç

Döngüde yeniden derlenen regex (ARCH2073)

Anahtar python.performance.regex-recompiled-in-loop · Önem info · Kategori performance

Sabit bir desenin döngü içinde her adımda derlenmesi gereksizdir. Deseni döngü dışında bir kez re.compile ile derleyip yeniden kullanın.

import re
def find_codes(lines):
out = []
for line in lines:
if re.match(r"^[A-Z]{3}\d{4}$", line):
out.append(line)
return out
import re
CODE_RE = re.compile(r"^[A-Z]{3}\d{4}$")
def find_codes(lines):
return [line for line in lines if CODE_RE.match(line)]

Sabit deseni döngü dışında modül düzeyinde re.compile ile bir kez derleyin.