gpt4 book ai didi

python - 对dict中所有 "key":"value"pair进行运算,并将结果存入一个新的dict对象中

转载 作者:太空狗 更新时间:2023-10-29 21:19:14 24 4
gpt4 key购买 nike

我有一个字典 S 作为:

{1: [11.1, 13, 15.0], 2: [6.9, 8.5, 10.17], 3: [3.86, 4.83, 6.07], 4: [3.86, 4.83, 6.07], 5: [2.31, 2.58, 3.02]}

还有一个数组 D1_inv 为:

[0.0248, 0.0296, 0.0357]

我需要获得 S 和 D1_inv 中所有项目的乘积。例如,对于 S[1]:

[round(i*j,4) for i,j in zip(S[1],D1_inv)]
Out[282]: [0.2753, 0.3848, 0.5355]

对于S[2]:

[round(i*j,4) for i,j in zip(S[2],D1_inv)]
Out[283]: [0.1711, 0.2516, 0.3631]

有人可以帮我创建一个循环,以便我可以将所有这些产品存储在像 S 这样的字典中吗?

最佳答案

您可以使用词典理解 来实现这一点。在您的字典理解中,您需要调用您的列表理解 来舍入每个列表的数字乘积作为原始 my_dict 字典中的值。它可以实现为:

my_dict = {1: [11.1, 13, 15.0], 2: [6.9, 8.5, 10.17], 3: [3.86, 4.83, 6.07], 4: [3.86, 4.83, 6.07], 5: [2.31, 2.58, 3.02]}
d1_inv = [0.0248, 0.0296, 0.0357]

new_dict = {k: [round(i*j,4) for i, j in zip(v,d1_inv)] for k, v in my_dict.items()}

new_dict 将是一个字典,其中包含初始 my_dict 中的每个 key 以及相应的值:

{1: [0.2753, 0.3848, 0.5355], 2: [0.1711, 0.2516, 0.3631], 3: [0.0957, 0.143, 0.2167], 4: [0.0957, 0.143, 0.2167], 5: [0.0573, 0.0764, 0.1078]}

说明:该解决方案包括:

  • 一个外部字典理解表达式,和
  • 内部列表理解表达式。

在这里,外部词典理解:

{k: [...*list comprehension*...] for k, v in my_dict.items()}

将遍历字典,提取由 my_dict.items() 返回的 ("key", "value") 对元组。在这里,我使用 k 作为新字典的键,其中值 v 将用于内部 list comprehension 表达式:

[round(i*j,4) for i, j in zip(v,d1_inv)]

这里,zip(v,d1_inv) 将返回对应于 d1_invv 中相同位置的对象的元组 (来自外部字典理解) ,然后我们调用 round() 函数对 返回的元组 (i, j) 中存在的元素的乘积>zip() 的迭代。

关于python - 对dict中所有 "key":"value"pair进行运算,并将结果存入一个新的dict对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48884965/

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