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 :

Récupérer le résultat d'une boucle for dans une liste


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 19
    Points : 10
    Points
    10
    Par défaut Récupérer le résultat d'une boucle for dans une liste
    Bonjour
    Je parcours depuis un moment le net pour avoir une réponse à quelque chose qui me paraît très simple
    J'ai une liste de données list=(a, b,c,d,e, f)
    je fais une boucle sur cette liste (for v(valeur) in list) avec des conditions pour transformer les valeurs a,b,c,d (qui deviennent des nombres coefficientés)
    je fais un print vt (valeur transformée) et comme ce sont des calculs la boucle affiche des integer jusque là pas de problème

    Je n'arrive pas à trouver comment je peux récupérer les différentes valeurs itérées de vt pour, par exemple, les reporter dans une nouvelle liste.
    Je vois sur le net qu'il faudrait utiliser yeld, mais cela dépasse ma compréhension.
    Cordialement
    Eljoj

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 280
    Points
    9 280
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne suis pas sûr d'avoir compris, mais voilà un petit code de test. La transformation est ici v => 2**v:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    L = [2,3,4,5]
     
    R = []
    for v in L:
        R.append(2**v)
    print(R)
    [4, 8, 16, 32]
    A noter qu'on peut faire ça en une seule ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    R = [2**v for v in L]
    print(R)
    [4, 8, 16, 32]
    Par ailleurs, il ne faut pas utiliser un nom de type (comme list) en tant que nom de variable.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Bonjour
    Merci, ça marche!
    en fait ma liste porte un autre nom et les calculs sont plus compliqués et dépendent de conditions mais mes résultats étaient justes. J'ai simplifié mon script pour être plus clair dans ma recherche, c'était tout simple!
    Merci beaucoup.
    Eljoj

  4. #4
    Membre régulier
    Avatar de mohamedAziz
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 42
    Points : 84
    Points
    84
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    Je ne suis pas sûr d'avoir compris, mais voilà un petit code de test. La transformation est ici v => 2**v:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    L = [2,3,4,5]
     
    R = []
    for v in L:
        R.append(2**v)
    print(R)
    [4, 8, 16, 32]
    A noter qu'on peut faire ça en une seule ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    R = [2**v for v in L]
    print(R)
    [4, 8, 16, 32]
    Par ailleurs, il ne faut pas utiliser un nom de type (comme list) en tant que nom de variable.

    Une Solution plus elegante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    map(lambda x : 2**x, L)

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 311
    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 311
    Points : 36 813
    Points
    36 813
    Par défaut
    Citation Envoyé par mohamedAziz Voir le message
    Une Solution plus elegante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    map(lambda x : 2**x, L)
    Plus élégante? C'est juste plus "lisp-ish", alors que [ x**2 for x in L ] (compréhension de liste) est plus "pythonique".

    - W

  6. #6
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 280
    Points
    9 280
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Plus élégante? c'est juste plus "lisp-ish", alors que [ x**2 for x in L ] (compréhension de liste) est plus "pythonique".
    +1!

  7. #7
    Membre régulier
    Avatar de mohamedAziz
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 42
    Points : 84
    Points
    84
    Billets dans le blog
    2
    Par défaut
    Oué peut être, en fait j'apprends Scheme en ce moment et vraiment ça m'impressionne.

    En fait c'est du Python pas du Lisp.

    +1 ...


Discussions similaires

  1. [Batch] Evaluation d'une variable modifiée dans une boucle FOR
    Par dedz dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 22/10/2009, 17h55
  2. Prendre en compte une valeur insérée dans une boucle for
    Par SOPSOU dans le forum Intelligence artificielle
    Réponses: 6
    Dernier message: 08/07/2009, 16h20
  3. Réponses: 4
    Dernier message: 05/06/2008, 21h55
  4. [SQL] Boucle SQL dans une boucle for
    Par architecte dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/08/2007, 11h47
  5. Réponses: 2
    Dernier message: 08/03/2007, 11h06

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