gpt4 book ai didi

python字典将值列表中的每个值除以总数

转载 作者:行者123 更新时间:2023-11-28 22:40:57 24 4
gpt4 key购买 nike

感谢您的帮助。我是 python 的新手。也感谢您的耐心等待。我正在尝试生成一个字典,将值列表中的每个值除以值列表中所有值的总和,以获得该值代表任何给定键的总数的相对比例。

大约有 8,000 个唯一键,每个键具有 1 到 20 个值。

下面是一段代码,它在成功地将两个列表 (k, v) 组合成字典后进行选择。

(注意最后一个for循环是错误发生的地方)

from collections import defaultdict

d = defaultdict(list)
for k, v in values:
d[k].append(v)
print list(d.items())

打印语句生成一个键列表和值列表,如下所示....,('030502060106', [20008611.2, 26323531.9, 18983267.9, 38024346.8]),....

for key in d:
dd[key] = sum(d[key])
print list(dd.items())

打印语句生成一个键列表和值列表,如下所示(注意值是上面值的总和)....,('030502060106', [2103339755]),.....

for key in d:
ddd[key] = [d[key]/sum(d[key])]
print list(ddd.items())

错误发生在这个 for 循环中,错误信息如下 TypeError: unsupported operand type(s) for/: 'list' and 'float'

如何使用键和值列表生成新字典,其中值列表中的每个值都被值的总和归一化(除以)?

在第一个 For Loop 打印语句之后对其建模,它看起来像这样 ,...('030502060106', [0.193619687, 0.254728018, 0.18369762, 0.367954675]),....

最佳答案

使用列表推导式遍历值列表,将每个值除以总和,然后返回一个列表。

for key in d:
ddd[key] = [val/sum(d[key]) for val in d[key]]
print list(ddd.items())

关于python字典将值列表中的每个值除以总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33138885/

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