114 votes

Comment convertir une liste en une chaîne de caractères avec des espaces en Python ?

Comment puis-je convertir une liste en une chaîne de caractères séparée par des espaces en Python ?

Par exemple, je veux convertir cette liste :

my_list = [how,are,you]

Dans la corde "how are you"

Les espaces sont importants. Je ne veux pas howareyou comme je l'ai fait avec ma tentative jusqu'à présent d'utiliser

"".join(my_list)

247voto

Joran Beasley Points 28451
" ".join(my_list)

Vous devez joindre avec un espace, pas une chaîne vide.

24voto

Polaris Points 263

J'ajouterai ceci comme alternative juste pour le plaisir, même si c'est plutôt inutile comparé à " ".join(my_list) pour les cordes. Pour les non chaînes (comme un tableau d'ints), cela peut être mieux :

" ".join(str(item) for item in my_list)

10voto

Athar Points 121

Pour les non-chaînes list on peut aussi faire comme ça

" ".join(map(str, my_list))

4voto

Abhay Tiwari Points 41

Ainsi, pour obtenir un résultat souhaité, nous devons d'abord savoir comment la fonction fonctionne.

La syntaxe pour join() telle que décrite dans la documentation python est la suivante :

string_name.join(iterable)

Les choses à noter :

  • Il renvoie un string concaténés avec les éléments de iterable . Le séparateur entre les éléments étant le string_name .
  • Toute valeur autre qu'une chaîne de caractères dans le champ iterable soulèvera un TypeError

Maintenant, pour ajouter espaces blancs nous devons simplement remplacer le string_name avec un " " ou un ' ' les deux travailleront et placeront le iterable que nous voulons concaténer.

Ainsi, notre fonction ressemblera à quelque chose comme ceci :

' '.join(my_list)

Mais, que se passe-t-il si nous voulons ajouter un nombre particulier de white spaces entre nos éléments dans le iterable ?

Nous devons ajouter ceci :

str(number*" ").join(iterable)

ici, le number sera une entrée de l'utilisateur.

Ainsi, par exemple, si number=4 .

Ensuite, la sortie de str(4*" ").join(my_list) sera how are you Il y a donc 4 espaces blancs entre chaque mot.

0voto

saif-py Points 1

Vous pouvez itérer à travers elle pour le faire

my_list = ['how', 'are', 'you']
my_string = " "
for a in my_list:
    my_string = my_string + ' ' + a
print(my_string)

La sortie est

 how are you

vous pouvez le dépouiller pour obtenir

how are you

comme ceci

my_list = ['how', 'are', 'you']
my_string = " "
for a in my_list:
    my_string = my_string + ' ' + a
print(my_string.strip())

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X