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 :

Liste to String


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Liste to String
    Salut à tous,

    Voilà je vous écris ce message parce qu'une erreur d'execution se produit de manière étrange...
    Voilà j'ai programmé une fonction qui pour une liste d'entiers compris entre 0 et 25, me renvoit la chaine de caractère correspondant (si a=0, b=1,...,z=25)

    def lst2str(l):
    return ''.join(chr(i+97) for i in l)

    Alors ça marche très bien quand je l'applique sur une liste d'entier, mais grosse incompréhension : si j'ai une liste de listes d'entiers (nommons la "lst") et bien lorsque je fais :
    for i in lst:
    print lst2str(i)
    ça n'affiche pas correctement la phrase : soit ça n'affiche que des espaces soit des caractères étranges (alors que les listes contiennent bien des entiers compris entre 0 et 25 !!)

    Des idées ? J'ai fais quelque chose de mal ?

    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2010
    Messages : 553
    Points : 2 740
    Points
    2 740
    Par défaut
    Salut,

    a priori, vu comment tu l'expliques, ça a l'air correct. mais faudrait que tu nous colle ton code pour qu'on puisse éventuellement t'aider.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse.

    Alors je viens de cerner un cas particulier assez étrange, donc j'ai mes fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import string
    def lst2str(l):
        return ''.join(chr(i+97) for i in l)
     
    def funct(lst,mat):
        res=[]
        for i in range(0,len(lst)-1,2):
            v=v=(vector([lst[i],lst[i+1]])*mat)%26
            res.append(v[0])
            res.append(v[1])
        return res
    et lorsque j'applique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    funct([5,4,3,2,1,23],matrix([[17,4],[0,1]]))
    , la fonction me renvoie [7, 24, 25, 14, 17, 1]
    or
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lst2str(funct([5,4,3,2,1,23],matrix([[17,4],[0,1]])))
    retourne '\x00\x11\x12\x07\n\x14' et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lst2str([7, 24, 25, 14, 17, 1])
    retourne 'hyzorb'...

    Quelqu'un voit mon erreur ?

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2010
    Messages : 553
    Points : 2 740
    Points
    2 740
    Par défaut
    quand j'essaye de lancer ton script auquel j'ai ajouté le premier appel de la func que tu as fourni en exemple j'obtiens ça:
    Traceback (most recent call last):
    File "(...)\str_list.py", line 13, in <module>
    funct([5,4,3,2,1,23],matrix([[17,4],[0,1]]))
    NameError: name 'matrix' is not defined
    du coup elle sort d'ou la fonction matrix...?
    et puis même question pour la fonction vector.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    En fait ça ne fonctionne pas parce que j'utilise Sage, et j'esperais que ça fonctionne en python mais pas du tout...
    Néanmoins, ça m'a permis de trouver mon erreur, c'est que je déclarais mon vecteur dans Z/26Z et donc le chr(i+97) n'etait jamais appliqué car réduit modulo 26, voilà pourquoi il n'affichait rien...

    Encore désolé de t'avoir fait perdre ton temps, et merci de m'avoir consacré du temps et indirèctement fait découvrir l'erreur

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

Discussions similaires

  1. récupérer la partie commune d'une liste de String
    Par Kanter dans le forum Delphi
    Réponses: 11
    Dernier message: 18/04/2007, 12h46
  2. Créer un tableau de liste de string
    Par nobeone dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 06/04/2007, 14h58
  3. Réponses: 23
    Dernier message: 08/06/2006, 15h06
  4. [VB.net] Join d'un Array list de string?
    Par the_bmo dans le forum VB.NET
    Réponses: 8
    Dernier message: 15/12/2005, 13h53
  5. Comparaison d'une liste de string à un string
    Par maxazac dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/10/2005, 15h39

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