Article déplacé vers la base de connaissances du luma.
Python tricks
☕ 3 commentaires
⌚
Article déplacé vers la base de connaissances du luma.
Erreur au niveau de pow : mauvais snippet
@klhnikov : tiens en fait non... bug sur mon affichage...
Le micro-benchmark pour re.sub :
from timeit import repeat
setup_1 = """
fname = "Ça, c'est un nom de fichier (2).odt"
"""
stmt_1 = """\
fname.replace('/', '-')\
.replace(':', '-')\
.replace('"', '-')\
.replace('|', '-')\
.replace('*', '-')\
.replace('<', '-')\
.replace('>', '-')\
.replace('?', '-')\
.replace('\\\\', '-')
"""
setup_2 = """
from re import compile, sub
pattern = compile(r'([/:"|*<>?\\\\])')
fname = "Ça, c'est un nom de fichier (2).odt"
"""
stmt_2 = "sub(pattern, '-', fname)"
setup_3 = """
repmap = {ord(c): "-" for c in '/:"|*<>?\\\\'}
fname = "Ça, c'est un nom de fichier (2).odt"
"""
stmt_3 = "fname.translate(repmap)"
print(min(repeat(stmt_1, setup_1, number=100000)))
print(min(repeat(stmt_2, setup_2, number=100000)))
print(min(repeat(stmt_3, setup_3, number=100000)))
Résults :
$ python3.8 bench.py
0.041965347016230226 # str.replace()
0.10586143494583666 # re.sub()
0.2713684451300651 # str.translate()