Dans mes quêtes d'optimisation, j'ai découvert que la méthode split() intégrée est environ 40% plus rapide que l'équivalent re.split().
Un benchmark fictif (facilement copiable) :
import re, time, random
def random_string(_len):
letters = "ABC"
return "".join([letters[random.randint(0,len(letters)-1)] for i in range(_len) ])
r = random_string(2000000)
pattern = re.compile(r"A")
start = time.time()
pattern.split(r)
print "with re.split : ", time.time() - start
start = time.time()
r.split("A")
print "with built-in split : ", time.time() - start
Pourquoi cette différence ?