bonjour,
Je n'arrive pas à trouver la méthode qui fait la même chose que IMPLODE (PHP) à savoir prendre un tableau et le retourner en chaine en séparant par un caractère donné.
une idée ?
bonjour,
Je n'arrive pas à trouver la méthode qui fait la même chose que IMPLODE (PHP) à savoir prendre un tableau et le retourner en chaine en séparant par un caractère donné.
une idée ?
Salut,
Je ne sais pas si ça correspond à ce que tu souhaites (le PHP et moi, ça fait un bail), mais tu as la méthode de chaîne join.
Le plus simple étant de montrer par l'exemple :
C'est donc une méthode que tu appelles sur la chaîne de caractères qui servira de séparateur, avec en argument la liste à concaténer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> liste = ["salut", "les", "copains", "!"] >>> liste ['salut', 'les', 'copains', '!'] >>> chaine = ' '.join(liste) >>> chaine 'salut les copains !' >>> chaine2 = ';'.join(liste) >>> chaine2 'salut;les;copains;!' >>>
@+
oui mais si mon tableau n'a pas des chaines mais des int, ça ne marche pas
Donc on peut transformer le contenu de ton "tableau" avant usage de join().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 >>> x = 78 >>> print str(x),type(str(x)) 78 <type 'str'>
Mais ce qui me gène, c’est qu’à ma connaissance il n’y a pas de structure de données Python qui s’appelle ’tableau’.
Si tu dis : j’ai une liste que je veux retourner en chaîne, OK , on peut faire une modif de la liste par list comprehension avant de sortir la chaîne. Mais sur une liste de listes ( pour représenter un tableau bi-dimensionnel), ou une liste de listes de listes (pour représenter un tableau tri-dimensionnel), ce sera un tout petit peu plus contourné comme code.
Et si c’est un tableau numpy, on fera encore autrement.
Alors pourquoi parler de tableau dans un langage qui n’en fait pas mention ?
La solution que tu as proposé correspond bien au implode, eyquem
Et pour les entiers (ou tout ce qui n'est pas de type string/unicode), on peut se servir de la fonction map.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 In [1]: l = [1, 2, 3, 4, 5] In [2]: "; ".join(map(str, l)) Out[2]: '1; 2; 3; 4; 5'
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager