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 une liste en une chaine des caractéres


Sujet :

Python

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 110
    Par défaut convertir une liste en une chaine des caractéres
    salut
    je veux convertir une liste en une chaine des caractéres ,j'utilise la fonction str mais elle ne marche pas
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def get_random (self):
                self.genes=np.zeros(self.nombre_genes)
                for i in range(4):
                    while True:
                        j=random.randint(0,(self.nombre_genes-1))
                        if self.genes[j] == 0: break
                    self.genes[j]=1
                string=str(self.genes)
     
                return string
    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    euh... comment dire : je ne comprends rien : mais alors rien de rien.

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 110
    Par défaut
    Citation Envoyé par marco056 Voir le message
    euh... comment dire : je ne comprends rien : mais alors rien de rien.
    salut
    en fait,c'est une fonction qui renvoit une liste (self.genes) .moi,je veux convertir cette liste en une chaine des caractéres en utilisant cet code mais aprés l'exécution sel.genes reste une liste comme ca [0 1 0 0 1 0 0 1 0 1 ]
    merci

  4. #4
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Il faudrait peut-être passer par un ecm : un exemple complet minimal dans lequel apparaît votre problème et que l'on peut reproduire.
    Perso, dans l'état, je laisse tomber.

  5. #5
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    dans le doute : string = ''.join(map(str, self.genes)) peut-être ?

    sinon +1 avec marco056, difficile de se prononcer en l'état on manque d'informations

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 110
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    salut,

    dans le doute : string = ''.join(map(str, self.genes)) peut-être ?

    sinon +1 avec marco056, difficile de se prononcer en l'état on manque d'informations
    merci pour votre réponse
    mais cette instruction ne marche pas
    voici mon code minimal et complet:
    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
    18
    class individu:
    	def __init__ (self,nombre_genes,random=-1):
    		self.genes = []
    		self.nombre_genes = nombre_genes
    		if random == -1 : self.get_random ()
    	"""
            random : initialise aleatoirement les genes
            """
    	def get_random (self):
                self.genes=np.zeros(self.nombre_genes)
                for i in range(4):
                    while True:
                        j=random.randint(0,(self.nombre_genes-1))
                        if self.genes[j] == 0: break
                    self.genes[j]=1
     
     
                return self.genes
    dans le programme principal,j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    i1=individu(10)
    	e=i1.get_random()
    	print e
    j'ai obtenu cette résulat=[0.1.0.0.1.0.0.1.0.1.] mais je veux obtenir cette résultat :'[0.1.0.0.1.0.0.1.0.1.]' c'est à dire que la fonction doit retourner une chaine des caractéres.
    Merci pour vos réponses

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 787
    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 787
    Par défaut
    Salut,

    Pour reproduire votre problème, il aurait suffit d'écrire(*):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> import numpy as np
    >>> ar = np.zeros(10)
    >>> print(ar)
    [ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]
    >>>
    Et si "print" sait transformer un array numpy en chaîne de caractère pour l'afficher, c'est que l'array à une méthode "str" qui permet cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> s = str(ar)
    >>> s
    '[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]'
    >>> print (s, type(s))
    [ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.] <class 'str'>
    >>>
    (*) essayez de lever le nez de votre code pour réfléchir aux instructions que vous demandez à Python d'exécuter. Vous verrez c'est beaucoup plus simple à comprendre, à exposer et à résoudre.

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

  8. #8
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 110
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Pour reproduire votre problème, il aurait suffit d'écrire(*):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> import numpy as np
    >>> ar = np.zeros(10)
    >>> print(ar)
    [ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]
    >>>
    Et si "print" sait transformer un array numpy en chaîne de caractère pour l'afficher, c'est que l'array à une méthode "str" qui permet cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> s = str(ar)
    >>> s
    '[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]'
    >>> print (s, type(s))
    [ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.] <class 'str'>
    >>>
    (*) essayez de lever le nez de votre code pour réfléchir aux instructions que vous demandez à Python d'exécuter. Vous verrez c'est beaucoup plus simple à comprendre, à exposer et à résoudre.

    - W
    salut
    merci mais j'ai pas compris cette phrase "essayez de lever le nez de votre code pour réfléchir aux instructions que vous demandez à Python d'exécuter"
    mon objectif principal pour cette

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 787
    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 787
    Par défaut
    Citation Envoyé par zeinab ali Voir le message
    merci mais j'ai pas compris cette phrase "essayez de lever le nez de votre code pour réfléchir aux instructions que vous demandez à Python d'exécuter"
    "foncer tête baissée" ou "avoir la tête dans le guidon" sont des expressions françaises.
    Je voulais juste mettre l'emphase sur le fait que votre problème s'expose en quelques lignes et se résume à convertir en string un tableau numpy.

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

  10. #10
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 110
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    "foncer tête baissée" ou "avoir la tête dans le guidon" sont des expressions françaises.
    Je voulais juste mettre l'emphase sur le fait que votre problème s'expose en quelques lignes et se résume à convertir en string un tableau numpy.

    - W
    ok ,merci
    s'il vous plait ,je vais vous exposer ma problème réelle dans un algorithme génétique
    j'ai essayé d'implémenter la méthode de sélection roue de fortune
    en fait ,dans une étape de cette méthode ,j'ai pu crée une liste nb_obtenu qui contient les occurrences de chaque individu dans la nouvelle population
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nb_obtenu=[]
    for j in range(len(nb_att)):
                            nb_obtenu.append(decimal.Decimal(round(nb_att[j],0)))
    Exemple simple:
    données=
    .nb_obtenu=[1,2,1]
    .liste_individu=['[001100]','[0101010]','[00101010]']
    Résultat=
    liste_resultat=['[001100]','[0101010]','[0101010]','[00101010]']
    voici le code que j'ai fait pour trouver le résulat au dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    liste_resultat=[]
    for cle, valeur in enumerate(liste_individu) :
                            liste_resultat.extend([valeur] * nb_obt[cle])
    mais j'ai l'erreur suivant:
    Type error:can't multipy sequence by non int of type decimal
    Merci d'avance

  11. #11
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    liste_resultat=[]
    for cle, valeur in enumerate(liste_individu) :
                            liste_resultat.extend([valeur] * nb_obt[cle])
    mais j'ai l'erreur suivant:
    Type error:can't multipy sequence by non int of type decimal
    Salut

    En fait le message d'erreur est plutôt clair et sans avoir toutes les billes de votre problème je pense que votre erreur intervient lorsque vous mutipliez [valeur] par nb_obt[clé] qui ne sont pas du bon type.

    Faites un print de [valeur] et nb_obt_[cle] et vous devriez comprendre votre erreurs par vous même.

    Bon courage

  12. #12
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 110
    Par défaut
    Citation Envoyé par nekcorp Voir le message
    Salut

    En fait le message d'erreur est plutôt clair et sans avoir toutes les billes de votre problème je pense que votre erreur intervient lorsque vous mutipliez [valeur] par nb_obt[clé] qui ne sont pas du bon type.

    Faites un print de [valeur] et nb_obt_[cle] et vous devriez comprendre votre erreurs par vous même.

    Bon courage
    salut
    merci bien
    aprés votre réponse,je trouve une idée utile

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

Discussions similaires

  1. [Lisp][IA] Supprimer une liste d'une liste de listes
    Par Superleo2999 dans le forum Lisp
    Réponses: 5
    Dernier message: 22/03/2010, 10h51
  2. Réponses: 12
    Dernier message: 12/09/2007, 16h28
  3. [PRBL]Caste une liste d'une liste d'objet
    Par stephane92400 dans le forum Langage
    Réponses: 4
    Dernier message: 07/08/2007, 21h01
  4. Appel d'une liste dans une liste (JSTL)
    Par abalgue dans le forum Hibernate
    Réponses: 4
    Dernier message: 15/06/2007, 10h56
  5. STL : retirer une liste d'une liste
    Par DEVfan dans le forum SL & STL
    Réponses: 13
    Dernier message: 05/01/2007, 20h49

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