130 votes

L'équivalent en Python de l'implode de PHP ?

Existe-t-il un équivalent de l'implode de PHP en Python ? J'ai lu et séparé un ensemble de mots délimités, et maintenant je veux les trier dans un ordre aléatoire et imprimer les mots avec des espaces entre eux.

implode - joint les éléments d'un tableau avec une chaîne de caractères

http://php.net/manual/en/function.implode.php

219voto

Matthias Points 6823

Utilisez les cordes méthode d'assemblage .

print(' '.join(['word1', 'word2', 'word3']))

Vous pouvez joindre n'importe quelle itérable (pas seulement la list utilisé ici) et bien sûr vous pouvez utiliser n'importe quelle chaîne (pas seulement ' ' ) comme délimiteur.

Si vous voulez un ordre aléatoire comme vous l'avez dit dans votre question, utilisez remue-ménage .


Dans le commentaire il y avait la question pourquoi Python jette une erreur si vous faites "glue".join(["startString", 123, "endString"]) . join opère sur un itérable de chaînes de caractères. Il n'y a pas de conversion de type implicite en Python.

Mais bien sûr, il existe une solution. Il suffit de faire la conversion soi-même.

"glue".join(map(str, ["startString",123,"endString"]))

14voto

pythonian29033 Points 1595

Ok, je viens de trouver une fonction qui fait ce que je voulais faire ;

Je lis dans un fichier avec des mots dans un format comme : Jack/Jill/my/kill/name/bucket

Je l'ai ensuite divisé en utilisant le split() et une fois que j'ai eu le mot dans une liste, j'ai concaténé les mots avec cette méthode :

concatenatedString = ' - '.join(myWordList)
# ie: delimeter.join(list)

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