我被迫在部分代码中使用python。我在模型中编码了ampl,但是现在我需要使用python查找数组的最大值。
这是我在AMPL中拥有的,我想知道我在python中是否可以具有相同的索引?
我从家庭和成员那里得到了一些信息。对于每个家庭中的每个人,我都有一些用途,我想找到最大的用途。
对于实用程序,我在集合E上具有参数U
set E ,within F cross N;
param U{E};
因此,U有2个索引U [f,i],F显示家庭,而我确定了这个人。
例如在第4个家庭中,第二人称具有以下实用程序:
U[4,2]=5
U[4,2]=6
U[4,2]=7
在第3户家庭中,第一人称具有这些功能
U[3,1]=8
U[3,1]=9
U[3,1]=1
let显示MU的max实用程序,因此作为输出
MU[4,2]=7
MU[3,1]=9
有什么办法可以在python中找到这个MU吗?
答案 0 :(得分:1)
您可以使用python
中的list
来完成此操作。实用价值可以表示为属于一个特定家庭和一个人的实用价值的keys
。家人和一个人可以在字典中表示为from collections import defaultdict
df = defaultdict(list)
df[4, 2] = [5, 6, 7]
df[3, 1] = [8, 9, 1]
for key in df.keys():
maximum = 0
for value in df[key]:
if value > maximum:
maximum = value
max_keys = key
print("(Family, Person) = ", key, "Max of Utility = ", maximum)
。
(Family, Person) = (4, 2) Max of Utility = 7
(Family, Person) = (3, 1) Max of Utility = 9
代码的输出将为
{{1}}