【发布时间】:2019-05-23 20:59:01
【问题描述】:
我正在使用 scipy.optimize.minimize(...) 例程,我需要指定采用以下形式的约束参数:
N = 50
cons = ({'type': 'ineq', 'fun': lambda x: x[0]<x[1]},
{'type': 'ineq', 'fun': lambda x: x[1]<x[2]},
{'type': 'ineq', 'fun': lambda x: x[2]<x[3]},
...)
其中包含形式为 {'type': 'ineq', 'fun': lambda x: x[i] 的 $N$ 元组
我想本着
的精神使用循环(或其他方式)创建这样的字典cons = dict([{'type':'ineq','fun':lambda x[i]<x[i+1]} for i in range(0,N)])
我试过了:
cons = zip(['fun' for i in range(0,N)], [lambda x: x[i]<x[i+1] for i in range(0,N)])
但它不起作用,我不知道如何管理多个键和值。
【问题讨论】:
-
你想在第一个代码块上创建?
-
类似
[{'type':'ineq','fun': lambda x: x[i] < x[i+1]} for i in range(0,N)]? -
@yatu 我虽然是这样,但
lambda让事情变得棘手。
标签: python loops dictionary optimization minimize