gpt4 book ai didi

python - 给定二维列表和值库的所有值的加权平均值

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:49 24 4
gpt4 key购买 nike

我有三个不同的列表:

a = [[7,5,8],[3,4]]

value = [9, 5, 7, 8, 3, 4, 10]
weight = [100.0, 65.0, 25.0, 25.0, 100.0, 65.0, 25.0]
capacity = [1000.0, 15.0, 700.0, 700.0, 1000.0, 15.0, 700.0]

我试图找到给定条目中所有值总和的权重和容量,例如在a[0]中:

weight_a[0] = (700*25 + 15*65 + 700*25) / (700 + 15 + 700)
capacity_a[0] = 700 + 15 + 700

weight_a[1] = (1000*100 + 15*65) / (1000 + 15)
capacity_a[1] = 1000 + 15

因此weight_a和capacity_a是a的每个列表中的条目的weighted_average和capacity之和。

值 7 的重量为 25,容量为 700:

7 is value[2] so capacity[2] = 700 and weight[2] = 25

weight_a方程为sum(值的权重*值的容量)/所有值的容量之和

capacity_a方程是所有值的容量之和

我一直在试图阐述这个问题,但似乎无法弄清楚。我正在尝试压缩(值、容量、重量),但我不确定如何访问给定的二维列表 a。

感谢任何帮助!

最佳答案

您可以将 map 与自定义函数结合使用,然后使用 zip 解压结果:

from operator import itemgetter, mul

def calculator(k):
k_set = set(k)
getter = itemgetter(*(idx for idx, i in enumerate(value) if i in k_set))
weights, caps = map(getter, (weight, capacity))
capsum = sum(caps)
return sum(map(mul, weights, caps)) / capsum, capsum

weight_a, capacity_a = zip(*map(calculator, a))

print(weight_a, capacity_a)

(25.424028268551236, 99.48275862068965) (1415.0, 1015.0)

关于python - 给定二维列表和值库的所有值的加权平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53049840/

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