IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

quel est l'équivalent IMPLODE en python ?


Sujet :

Python

  1. #1
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 395
    Points : 863
    Points
    863
    Par défaut quel est l'équivalent IMPLODE en python ?
    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 ?

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Points : 224
    Points
    224
    Par défaut
    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 :
    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;!'
    >>>
    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.

    @+

  3. #3
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 395
    Points : 863
    Points
    863
    Par défaut ok
    oui mais si mon tableau n'a pas des chaines mais des int, ça ne marche pas

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> x = 78
    >>> print str(x),type(str(x))
    78 <type 'str'>
    Donc on peut transformer le contenu de ton "tableau" avant usage de join().

    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 ?

  5. #5
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    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'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/01/2006, 22h39
  2. Quel est l'équivalent de Findcomponent pour les Forms ?
    Par Ben_Le_Cool dans le forum Composants VCL
    Réponses: 12
    Dernier message: 23/09/2005, 12h48
  3. Quel est l'équivalent de realloc en C++ ?
    Par xavlours dans le forum C++
    Réponses: 4
    Dernier message: 13/05/2005, 13h36
  4. Quel est l'équivalent de UBound de VB en delphi
    Par Isa31 dans le forum Langage
    Réponses: 2
    Dernier message: 03/02/2005, 14h37
  5. Réponses: 4
    Dernier message: 21/09/2003, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo