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