Python concaténer liste
Je suis nouveau sur python et c'est juste pour automatiser quelque chose sur mon PC. Je veux concaténer tous les éléments dans une liste. Le problème est que
''.join(list)
ne fonctionnera pas comme il n'est pas une liste de chaînes de caractères.
Ce site http://www.skymind.com/~ocrow/python_string/ dit la manière la plus efficace de le faire est
''.join([`num` for num in xrange(loop_count)])
mais qui n'est pas valide python...
Quelqu'un peut m'expliquer la syntaxe correcte de l'inclusion de cette sorte de boucle dans une chaîne de caractères.join()?
Il semble que le backtick syntaxe est supprimé en python 3.
OriginalL'auteur Jorge Thame | 2012-08-15
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de tourner tout en la liste dans les chaînes, à l'aide de la
str()
constructeur:Noter que ce n'est généralement pas une bonne idée d'utiliser
list
pour un nom de variable, il va de l'ombre à l'intégré danslist
constructeur.J'ai utilisé un générateur d'expression, il y appliquer le
str()
constructeur sur chaque élément de la liste. Une autre méthode consiste à utiliser lemap()
function:Les backticks dans votre exemple, sont une autre orthographe de l'appel
repr()
sur une valeur, qui est subtilement différent destr()
; vous voudrez probablement le dernier. Parce qu'il viole le Python principe de "Il devrait y avoir un, et de préférence seulement une façon évidente de le faire.", les backticks syntaxe a été retiré de Python 3.OriginalL'auteur Martijn Pieters
Voici une autre manière (la discussion est d'environ Python 2.x):
Cette solution sera la performance la plus rapide, et il a l'air sympa et simple de l'omi. À l'aide d'un générateur de ne pas être plus efficace. En fait, ce sera plus efficace, car
''.join
a allouer le montant exact de la mémoire pour la chaîne en fonction de la longueur des éléments de sorte qu'il aura besoin de consommer de l'ensemble du générateur avant de créer la chaîne de toute façon.Noter que
``
a été supprimé en Python 3, et il est préférable de ne pas utiliser plus, être plus explicite en utilisantstr()
si vous devez, par exemple.str(num)
.map
fonctionne comme un générateur de toute façonà noter que, au top
OriginalL'auteur jamylak
il suffit d'utiliser cette, pas besoin de
[]
et l'utilisationstr(num)
:pour la liste il suffit de remplacer
xrange(loop_count)
avec le nom de la liste.exemple:
for num in xrange(loop_count)
exemple est une source de distraction, vraiment.OriginalL'auteur Ashwini Chaudhary
Si votre Python est trop vieux pour les "interprétations de la liste" (l'étrange
[x for x in ...]
syntaxe), l'utilisationmap()
:J'ai lu que comme l'exact opposé: Il a une erreur de syntaxe et ne sait pas comment le résoudre.
Le code est légal en Python 2; je m'adressais votre " python est trop vieux pour les interprétations de la liste remarque. 🙂
Il sera peut-être à l'aide de Python 1.6.
Très rare, qui n'a pas eu cours depuis plus d'une décennie!
OriginalL'auteur Aaron Digulla