Supprimer les espaces en trop dans Python

Supposons cette chaîne de caractères :

Bonjour      tous      le      monde      !

Se transformer en :

Bonjour tous le monde !

Quel est le moyen le plus simple (1 à 2 lignes) pour réaliser cela, sans se diviser et sans entrer dans des listes ?

>>> import re
>>> re.sub(' +', ' ', 'Bonjour      tous      le      monde      !')
'Bonjour tous le monde !'

str est votre chaîne de caractères :

" ".join(str.split())

Attention pourtant, cela supprime « tous les caractères d’espacement (espace, tabulation, nouvelle ligne, retour, saut de page) ». Par exemple, « ceci est \t un test\n » se terminera effectivement par « ceci est un test ».

Essayez le code suivant:

import re
s = "Bonjour      tous      le      monde      !"
re.sub("\s\s+" , " ", s)

ou

re.sub("\s\s+", " ", s)

Comme les solutions précédentes, mais de manière plus précise : remplacez deux ou plusieurs espaces par un seul :

>>> import re
>>> s = "Bonjour      tous      le      monde      !"
>>> re.sub('\s{2,}', ' ', s)
'Bonjour tous le monde !'