Skip to main content
 首页 » 编程设计

按第一个分组的元组列表中元组的第二个和第三个元素的 Python 总和

2025年05月04日24Terrylee

如何获得按第一个值分组的元组列表中第二个和第三个值的总和?

即:

list_of_tuples = [(1, 3, 1), (1, 2, 4), (2, 1, 0), (2, 2, 0)]

expected_output = [(1, 5, 5), (2, 3, 0)]

我找到了几个 great answers在 StackOverflow 上执行此操作发现具有两个值的元组,但无法弄清楚如何调整它们以求和第二个和第三个值。

第二个值的一个很好的答案是:

def sum_pairs(pairs): 
sums = {} 
for pair in pairs: 
    sums.setdefault(pair[0], 0) 
    sums[pair[0]] += pair[1] 
return sums.items() 

请您参考如下方法:

你也可以这样做:

list_of_tuples = [(1, 3, 1), (1, 2, 4), (2, 1, 0), (2, 2, 0)] 
 
# create empty dictionary to store data 
sums = {} 
 
# iterate over list of typles 
for pair in list_of_tuples: 
 
  # create new item in dictionary if it didnt exist 
  if pair[0] not in sums: sums[pair[0]] = [pair[0], 0 ,0] 
 
  # sum the values 
  sums[pair[0]][1] += pair[1] 
  sums[pair[0]][2] += pair[2] 
 
#print resulting tuple    
print(tuple(sums.values()))