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 :

Convertir un élément d'une liste en chaîne


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 13
    Par défaut Convertir un élément d'une liste en chaîne
    Bonjour, alors voilà mon problème, je récupère sur un LDAP des attributs stockés apparemment sous forme de liste et j'aimerais pour pouvoir les stocker dans mon active directory les passer en chaîne, est-ce possible? Si oui quelle fonction dois-je utiliser ... ?

    Merci.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 676
    Par défaut
    Salut,

    Tel que décrit, çà se fait avec des méthodes sur les objets de base que sont list et str:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> liste = [ 1, 2, 'a', 'b' ]
    >>> ''.join([ str(_) for _ in liste ])
    '12ab'
    >>>
    Si vous ne maîtrisez pas encore ces bases là, vous allez pourrir votre LDAP.
    Vos collègues seront ravis...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 13
    Par défaut
    En fait je viens de me rendre compte d'un truc, moi mon erreur c'est que j'essaie de concaténer une liste et une chaine, je n'arrive pas (même avec cette méthode) pas à convertir mon élément de la liste en chaine ... Après ce n'est peut être pas la bonne méthode de vouloir convertir cet élément en chaine, il existe surement une autre méthode pour concaténer une liste et une chaine...

  4. #4
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Non , tu ne peux concaténer une liste et une chaine , à moins de transformer certaines choses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> a = 'aa'
    >>> list(a)
    ['a', 'a']
    >>> str(a)
    'aa'
    >>> list(a) + str(a)
     
    Traceback (most recent call last):
      File "<pyshell#3>", line 1, in <module>
        list(a) + str(a)
    TypeError: can only concatenate list (not "str") to list

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 676
    Par défaut
    Citation Envoyé par irastak Voir le message
    En fait je viens de me rendre compte d'un truc, moi mon erreur c'est que j'essaie de concaténer une liste et une chaine, je n'arrive pas (même avec cette méthode) pas à convertir mon élément de la liste en chaine ... Après ce n'est peut être pas la bonne méthode de vouloir convertir cet élément en chaine, il existe surement une autre méthode pour concaténer une liste et une chaine...
    Je vous ai montré comment transformer une "list" en "str".
    Si vous ne savez pas comment concaténer 2 chaînes de caractères, il faudrait envisager de passer un peu de temps à apprendre à programmer avec Python.
    Nous faisons de la publicité pour le Swinnen.
    Il y en a d'autres. Choisissez le plus adapté à vos attentes.
    Bon courage.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 13
    Par défaut
    Merci wiztricks, en fait j'ai honte j'ai utiliser ce que tu m'a donner et ca marche, j'ai pas du faire comme il faut la première fois... et du coup j'arrive bien a concaténer deux chaines de caractères ne t'en fais pas j'en suis pas a ce point quand meme xD

  7. #7
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Je vous ai montré comment transformer une "list" en "str".
    Si vous ne savez pas comment concaténer 2 chaînes de caractères, il faudrait envisager de passer un peu de temps à apprendre à programmer avec Python.
    Nous faisons de la publicité pour le Swinnen.
    Il y en a d'autres. Choisissez le plus adapté à vos attentes.
    Bon courage.

    - W
    @Wiztricks , vous avez utilisé une approche fonctionnelle mais pourquoi les crochets n'ont aucune incidence sur le résultat avec la méthode join() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    >>> b= ['1','2','3']
    >>> ''.join(str(i) for i in b)
    '123'
    >>> c = ['1','2','3']
    >>> ''.join([ str(e) for e in c ])
    '123'
    >>> u = [1,2,3]
    >>> ''.join([ str(a) for a in u ])
    '123'
    >>> u = [1,2,3]
    >>> ''.join(str(d) for d in u)
    '123'
    >>> liste = [ 1, 2, 'a', 'b' ]
    >>> ''.join(str(f) for f in liste)
    '12ab'
    >>>
    Mais la méthode join() agit bizarrement avec une chaine , elle rajoute soit un élèment au milieu, soit il y'a une répétition qui s'opère . C'est certain que la méthode insert() est la plus fiable pour insérer un élément dans une liste , et join() est là pour relier les éléments (de manière ordonnée) .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    >>> a= 'tt'
    >>> '1'.join(a)
    't1t'
    >>> b= [1,2,3]
    >>> '1'.join(b)
     
    Traceback (most recent call last):
      File "<pyshell#3>", line 1, in <module>
        '1'.join(b)
    TypeError: sequence item 0: expected string, int found
    >>> b= ['1','2','3']
    >>> '4'.join(b)
    '14243'

  8. #8
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par Kurodiam Voir le message
    @Wiztricks , vous avez utilisé une approche fonctionnelle mais pourquoi les crochets n'ont aucune incidence sur le résultat avec la méthode join() :

    Mais la méthode join() agit bizarrement avec une chaine , elle rajoute soit un élèment au milieu, soit il y'a une répétition qui s'opère . C'est certain que la méthode insert() est la plus fiable pour insérer un élément dans une liste , et join() est là pour relier les éléments (de manière ordonnée) .
    Bonjour,
    str.join(iterable)

    Return a string which is the concatenation of the strings in the iterable iterable. A TypeError will be raised if there are any non-string values in iterable, including bytes objects. The separator between elements is the string providing this method.
    La fonction "c = a.join(b)", concatène l'itérable b par la chaîne a.
    a, b et c doivent être des chaînes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> b= ['1','2','3']
    >>> ''.join(str(i) for i in b)
    '123'
    >>> c = ['1','2','3']
    >>> ''.join([ str(e) for e in c ])
    '123'
    Il faut regarder la définition de "join": le paramètre doit être un itérable:
    iterable
    An object capable of returning its members one at a time. Examples of iterables include all sequence types (such as list, str, and tuple) and some non-sequence types like dict, file objects, and objects of any classes you define with an __iter__() or __getitem__() method. Iterables can be used in a for loop and in many other places where a sequence is needed (zip(), map(), ...). When an iterable object is passed as an argument to the built-in function iter(), it returns an iterator for the object. This iterator is good for one pass over the set of values. When using iterables, it is usually not necessary to call iter() or deal with iterator objects yourself. The for statement does that automatically for you, creating a temporary unnamed variable to hold the iterator for the duration of the loop. See also iterator, sequence, and generator.
    Une liste est un itérable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> (str(i) for i in b)
    <generator object <genexpr> at 0x7f04ee11b280>
    Et l'expression est un générateur… Qui est une fonction qui renvoie un itérateur…
    Il faut prendre un peut de temps pour lire le glossaire!!

    Clodion

  9. #9
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Ok. Merci pour l'explication . Donc il faut pas confondre les deux .
    En cours , on a vu la notion de générateur , mais on n'a pas non plus poussé le bouchon ...

Discussions similaires

  1. [Python 2.X] Convertir une date directement depuis un élément d'une liste
    Par Taylor08 dans le forum Général Python
    Réponses: 15
    Dernier message: 23/03/2015, 14h30
  2. [TPW] Erreur lors de l'ajout d'un élément dans une liste chaînée triée
    Par sangimed dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 18/01/2013, 21h37
  3. [Turbo Pascal] Suppression d'éléments d'une liste chaînée simple
    Par gigimino dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 22/07/2011, 14h28
  4. [Free Pascal] Insertion d'éléments dans une liste chaînée
    Par Pacorabanix dans le forum Free Pascal
    Réponses: 4
    Dernier message: 20/04/2010, 00h42
  5. Récupérer le Nième élément d'une liste chaînée
    Par decoy Octopus dans le forum Pascal
    Réponses: 3
    Dernier message: 03/11/2006, 18h03

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