Skip to main content
 首页 » 编程设计

Python根据其他列表求和列表元素

2025年05月04日10落叶

我有这两个列表:

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]]