【发布时间】:2018-11-27 01:40:47
【问题描述】:
我正在使用“SciPy.optimize”并且在生成一些约束时遇到了一些麻烦。
我正在尝试使用循环将条目添加到字典中。循环的索引 i 应写入字典。但是只有一个对字典的引用。所有的函数都是 {'type': 'ineq', 'fun': lambda x: MyFunction(x,True, 19)} 因为 19 是 i 的最大值。 (数组有 20 个对象。)所以结果是,所有函数的输出都是 19。
con1 = {'type': 'eq', 'fun': MyFirstFunction}
cons = ([con1])
for i, m in enumerate(myobject.getAsNpArray()):
cons.append({'type': 'ineq', 'fun': lambda x: MyFunction(x,True, i)})
def MyFunction(x,myBool, i):
print(i)
#do some fancy stuff
我该如何解决这个问题?这样的事情不起作用:
cons.append({'type': 'ineq', 'fun': lambda x: MyFunction(x,True, copy.copy(i))})
【问题讨论】:
标签: python python-3.x lambda scope scipy