我们可以在 python 中定义一个具有多个索引的变量吗?
can we define a variable with multi indices in python?
我的部分代码被迫使用 python。我在 ampl 中编码了我的模型,但现在我需要使用 python 来查找数组的最大值。
这是我在 AMPL 中的内容 我想知道我是否可以在 python 中使用相同的索引?
我有一些家庭和成员的信息。对于每个家庭中的每个人,我都有一些效用,我想找到最大的效用。
我在集合 E 上有参数 U,用于实用程序
set E ,within F cross N;
param U{E};
所以U有2个索引U[f,i],F表示家庭,i表示人。
例如在第 4 个家庭中,第二个人有这些实用程序:
U[4,2]=5
U[4,2]=6
U[4,2]=7
而在第三户中,第一个人有这些效用
U[3,1]=8
U[3,1]=9
U[3,1]=1
让我们显示 MU 的最大效用,因此作为输出我们有
MU[4,2]=7
MU[3,1]=9
有什么办法可以在 python 中找到这个 MU?
您可以在 python
中使用 dictionary
来完成此操作。效用值可以表示为 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
我的部分代码被迫使用 python。我在 ampl 中编码了我的模型,但现在我需要使用 python 来查找数组的最大值。
这是我在 AMPL 中的内容 我想知道我是否可以在 python 中使用相同的索引?
我有一些家庭和成员的信息。对于每个家庭中的每个人,我都有一些效用,我想找到最大的效用。
我在集合 E 上有参数 U,用于实用程序
set E ,within F cross N;
param U{E};
所以U有2个索引U[f,i],F表示家庭,i表示人。
例如在第 4 个家庭中,第二个人有这些实用程序:
U[4,2]=5
U[4,2]=6
U[4,2]=7
而在第三户中,第一个人有这些效用
U[3,1]=8
U[3,1]=9
U[3,1]=1
让我们显示 MU 的最大效用,因此作为输出我们有
MU[4,2]=7
MU[3,1]=9
有什么办法可以在 python 中找到这个 MU?
您可以在 python
中使用 dictionary
来完成此操作。效用值可以表示为 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