我们可以在python中定义一个具有多个索引的变量吗?

2024-05-28 22:47:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我被迫使用python作为我代码的一部分。我在ampl模型中编写了代码,但现在需要使用python来查找数组的最大值

这是我在AMPL中的内容,我想知道我是否可以在python中使用相同的索引

我从家庭和成员那里得到一些信息。对于每个家庭的每个人,我都有一些效用,我想找到最大的效用

我在集合E上有参数U,用于实用

             set E ,within F cross N;
              param U{E};

所以有两个指数,表示家庭,我决定了这个人

例如,在第四个家庭中,第二个人有以下实用程序:

  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


Tags: 代码模型实用程序信息内容参数家庭成员
1条回答
网友
1楼 · 发布于 2024-05-28 22:47:07

您可以在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

相关问题 更多 >

    热门问题