下面是一个示例代码,用于按独特ID求和并自动删除。
from collections import defaultdict
def sum_and_remove_duplicates(data):
# 使用 defaultdict 创建一个字典来存储每个独特ID的和
sum_dict = defaultdict(int)
# 计算每个独特ID的和
for id, value in data:
sum_dict[id] += value
# 创建一个新的列表,仅包含独特ID的和
result = [(id, value) for id, value in sum_dict.items()]
# 返回独特ID的和,并自动删除原始数据中的重复项
return result
# 测试数据
data = [(1, 2), (2, 3), (1, 5), (3, 2), (2, 4), (3, 1)]
result = sum_and_remove_duplicates(data)
print(result)
输出结果为:
[(1, 7), (2, 7), (3, 3)]
在这个示例代码中,我们首先使用 defaultdict(int)
创建了一个字典 sum_dict
来存储每个独特ID的和。然后,我们遍历原始数据并累加每个独特ID的值。最后,我们创建一个新的列表 result
,仅包含独特ID的和。同时,我们还使用 defaultdict
的特性,自动删除了原始数据中的重复项。