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.

26
demandé sur Adam Wagner 2011-12-17 20:42:42

5 réponses

Tout ce que vous devez faire est d'ajouter l'espace devant la jointure.

 ' '.join(list)
50
répondu Lance Collins 2011-12-17 16:45:46
>>> ' '.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.

15
répondu kev 2017-02-21 09:55:44

' '.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.

4
répondu Adam Wagner 2011-12-17 19:54:16

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.

4
répondu bofh.at 2015-09-24 21:20:56
>>> " ".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'
3
répondu Fredrik Pihl 2011-12-17 17:09:28