我有这两个列表:
x = [1, 2, 3, 1, 1, 2, 3]
y = [1.3, 0.5, 0.7, 1.9, 2.5, 3.1, 1.4]
我想根据 x 中的每个重复元素对 y 个元素求和。
例如,对于 x (=1) 的第一个元素,我必须对索引 0、3 和 4 处的所有 y 元素求和,这些元素的索引是x 中的 1。我想保存元素及其总和。
我的输出将是这样的:
sum = [[1, 5.7],
[2, 3.6],
[3, 2.1]]
我该如何编码?
请您参考如下方法:
这是使用 defaultdict 的一种方法:
from collections import defaultdict
d = defaultdict(float)
for k,v in zip(x,y):
d[k] += v
list(map(list, d.items()))
# [[1, 5.7], [2, 3.6], [3, 2.0999999999999996]]
