Python concat chaîne avec liste
Je voulais construire une chaîne à partir d'une liste.
J'ai utilisé la chaîne.commande join (), mais si j'ai:
['hello', 'good', 'morning']
Je reçois: hellogoodmorning
Est-il une méthode qui me permet de mettre un espace entre chaque mot ? (sans avoir besoin d'écrire une boucle for)
Cordialement.
5 réponses
Tout ce que vous devez faire est d'ajouter l'espace devant la jointure.
' '.join(list)
>>> ' '.join(['hello', 'good', 'morning'])
'hello good morning'
La norme et la meilleure façon de joindre une liste de chaînes. Je ne peux pas penser à quelque chose de mieux que cela.
' '.join(...)
est le moyen le plus facile comme d'autres l'ont mentionné. Et en fait, c'est le moyen préféré de le faire dans tous les cas (même si vous vous joignez sans rembourrage, utilisez simplement ''.join(...)
).
Alors qu'il a encore quelques fonctions utiles... la plupart des fonctions string
modules ont été faites méthodes sur le type str/objet.
Vous pouvez trouver la liste complète des fonctions de chaîne obsolètes (y compris join
) dans la section fonctions de chaîne obsolètes des documents python.
Cela fait ce que vous voulez:
" ".join(['hello', 'good', 'morning'])
Généralement, lorsque vous appelez join()
sur une chaîne, vous utilisez " "
pour spécifier le séparateur entre les éléments de la liste.
>>> " ".join(['hello', "good", "morning"])
'hello good morning'
Ou vous pouvez utiliser la fonction string.join()
, qui utilise un seul espace comme séparateur par défaut.
>>> help(string.join)
Help on function join in module string:
join(words, sep=' ')
join(list [,sep]) -> string
Return a string composed of the words in list, with
intervening occurrences of sep. The default separator is a
single space.
Exemple:
>>> import string
>>> string.join(['hello', "good", "morning"])
'hello good morning'