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
Partager