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 :

Erreur sur la création d'une liste dans une boucle


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    2
    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 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Erreur sur la création d'une liste dans une boucle
    Bonjour,

    J'ai un petit bug sur la création d'une liste de fonctions (fonction lambda). Le code est le suivant :

    # Bornes inférieures et supérieures
    binf = [0,0]
    bsup = [1,1]

    dim = 2

    #liste contenant les contraintes
    constraints = []

    for k in range(dim):
    constraints.append(lambda x: x[k] - binf[k])
    constraints.append(lambda x: bsup[k] - x[k])

    x = [1, 15] # Point sur lequel on fait le test

    #La liste constraints est de longueur 4
    print constraints[0](x) # Il m'affiche 15, donc python fait le calcul 15 - 0
    #alors qu'il fallait faire 1 - 0

    Il me semble que dans la liste contenant les quatre fonctions lambda, python considère seulement la dernière valeur de k ==> k n'a pas été fixé une fois pour toute lors de chaque itération.

    Quelqu'un aurait une solution pour ce problème!!!!!

    Merci beaucoup

  2. #2
    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
    Salut,
    Citation Envoyé par mbouhlel Voir le message
    Quelqu'un aurait une solution pour ce problème!!!!!
    La même que d'hab.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    constraints.append(lambda x, k=k: x[k] - binf[k])
    - W

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    2
    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 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci

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

Discussions similaires

  1. une liste dans une liste?
    Par JerryOne3 dans le forum C#
    Réponses: 11
    Dernier message: 11/01/2009, 16h43
  2. quand je selectionne une valeur dans une liste, retourne une autre valeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2008, 14h23
  3. [débutant] Comment gérer une liste dans une liste
    Par Lenoiche dans le forum iReport
    Réponses: 0
    Dernier message: 16/07/2008, 10h41
  4. champ d'une liste lié à une liste dans un autre site
    Par guintolli dans le forum SharePoint
    Réponses: 8
    Dernier message: 08/07/2008, 14h51
  5. Appel d'une liste dans une liste (JSTL)
    Par abalgue dans le forum Hibernate
    Réponses: 4
    Dernier message: 15/06/2007, 10h56

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