gpt4 book ai didi

python - 如何在 Python 中从 3 个列表创建 3 维字典

转载 作者:行者123 更新时间:2023-11-30 22:35:34 26 4
gpt4 key购买 nike

我有 3 个列表

i = ['a','b','c']
j = ['1','2','3']
l = ['01','02']

我想创建一个看起来像这样的字典:

D = {'a':{'1':{'01':10, '02':100}, {'2':{'01':20,'02':50}}}

我希望能够循环 i, jl 并执行 D[i][j][l] 来获取与其关联的值。

Ds = {}
l_ = 0
for i_ in range(len(i)):
j_ = 0
for j_ in range(len(j)):
l_ = 0
for l_ in range(len(l)):
Ds[i[i_]] = {j[j_]:{l[l_]:'some value'}}

我试过了,但这不起作用。

额外:我正在 Pulp 中编写一个线性程序,我想为特定 sku i 创建一个需求值字典,在 j 期间在线l 这样我就可以对 i, j ,l< 进行 Dijl*Xijtl = some_value 求和 用于约束或类似的东西。这些需求值是常数。这可以是笛卡尔积或推导式。有没有类似LpVariable.dicts()的函数?

最佳答案

由于您正在使用 PuLP,您可能需要研究一下 Pulp 的 makeDict()。

假设您有以下内容:

i = ['a', 'b']
j = ['1', '2', '3']
l = ['01', '02']

对于您的需求值,您有:

value_a_1_01 = 10
value_a_1_02 = 20
value_a_2_01 = 30
value_a_2_02 = 40
value_a_3_01 = 50
value_a_3_02 = 60

value_b_1_01 = 70
value_b_1_02 = 80
value_b_2_01 = 90
value_b_2_02 = 100
value_b_3_01 = 110
value_b_3_02 = 120

然后您可以创建一个包含需求数据的数组,如下所示:

array = [[{'01': 10, '02': 20}, {'01': 30, '02': 40},
{'01': 50, '02': 60}],
[{'01': 70, '02': 80}, {'01': 90, '02': 100},
{'01': 110, '02': 120}]]

现在定义你的字典:

D = pulp.makeDict([i, j], array)

编辑:由于之前的数据设置有点困惑,像这样设置数组使其更加干净(并且更易于编辑):

array = [
[[10, 20], [30, 40], [50, 60]],
[[70, 80], [90, 100], [110, 120]]
]

现在 makeDict() 的参数应该是:

 D = pulp.makeDict([i, j, l], array)

关于python - 如何在 Python 中从 3 个列表创建 3 维字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44527562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com