Existe-t-il une fonction de bibliothèque multiplate-forme qui réduirait une chaîne multiligne en une chaîne à ligne unique sans espaces récurrents?Existe-t-il une fonction de bibliothèque de réduction de chaîne en python?
J'ai trouvé un snip ci-dessous, mais je me demande s'il y a une fonction standard que je pourrais simplement importer, qui est peut-être même optimisée en C?
def collapse(input):
import re
rn = re.compile(r'(\r\n)+')
r = re.compile(r'\r+')
n = re.compile(r'\n+')
s = re.compile(r'\ +')
return s.sub(' ',n.sub(' ',r.sub(' ',rn.sub(' ',input))))
P.S. Merci pour les bonnes observations. ' '.join(input.split())
semble être le gagnant car il tourne plus vite environ deux fois dans mon cas par rapport à search-replace avec une regex r'\s+'
précompilé.
Pourquoi "cross-platform" dans le titre de la question? Presque tout en Python est multiplate-forme, à l'exception des éléments spécifiques au système d'exploitation. Ce n'est clairement pas spécifique au système d'exploitation, sauf si vous avez omis quelque chose. –
bon point. Je ne savais pas que le caractère '\ n' est multi-plateforme en python. Je pensais que '\ n' signifie littéralement un caractère ascii spécial. – Evgeny
Cela signifie littéralement un caractère ascii spécial. Ce personnage est le même sur toutes les plateformes - une nouvelle ligne. –