Comment puis-je convertir une liste en chaîne séparée par des espaces en Python?
Par exemple, je veux convertir cette liste:
my_list = [how,are,you]
Dans la chaîne "how are you"
Les espaces sont importants. Je ne veux pas obtenir howareyou
comme je l’ai fait jusqu’à présent avec ma tentative
"".join(my_list)
" ".join(my_list)
vous devez joindre avec un espace pas une chaîne vide ...
Je vais utiliser cette option comme alternative, même si c'est pratiquement inutile par rapport à " ".join(my_list)
pour les chaînes. Pour les non-chaînes (comme un tableau d'ints), cela peut être mieux:
" ".join(str(item) for item in my_list)
Pour Non String list
on peut faire comme ça aussi
" ".join(map(str, my_list))
Donc, pour obtenir le résultat souhaité, nous devons d’abord savoir comment fonctionne la fonction.
La syntaxe de la méthode join()
décrite dans la documentation python) est la suivante:
string_name.join(iterable)
Choses à noter:
string
concaténé avec les éléments de iterable
. Le séparateur entre les éléments étant le string_name
.iterable
lève un TypeError
Maintenant, pour ajouter espaces blancs, il suffit de remplacer le string_name
Par un " "
Ou un ' '
Les deux fonctionneront et placeront le iterable
que nous voulons concaténer.
Donc, notre fonction ressemblera à 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 avons juste besoin de faire ceci:
str(number*" ").join(iterable)
ici, le number
sera une entrée utilisateur.
Donc, par exemple si number=4
.
Ensuite, le résultat de str(4*" ").join(my_list)
sera how are you
, De sorte qu'il y a 4 espaces entre chaque mot.