繁体   English   中英

我们可以在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显示家庭,我确定人。

例如,在第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显示max实用程序,作为输出

  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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM