假设我们有一个包含两列数据的列表my_list,每一行代表一个数据点,第一列是分组的依据,第二列是需要求和的数据。下面是一个示例代码:
from collections import defaultdict
# 示例数据
my_list = [
['A', 10],
['B', 20],
['A', 30],
['C', 40],
['B', 50],
['A', 60]
]
# 使用 defaultdict 创建一个字典,初始化值为一个空的 set
grouped_dict = defaultdict(set)
# 按照第一列进行分组,将第二列的值添加到对应的集合中
for row in my_list:
group = row[0]
value = row[1]
grouped_dict[group].add(value)
# 对每个分组的集合求和
sum_dict = {}
for group, values in grouped_dict.items():
sum_dict[group] = sum(values)
# 输出结果
for group, total in sum_dict.items():
print(f"分组 {group} 的唯一出现次数之和为 {total}")
输出结果:
分组 A 的唯一出现次数之和为 100
分组 B 的唯一出现次数之和为 70
分组 C 的唯一出现次数之和为 40
这段代码使用了 defaultdict 类来创建一个字典,其初始化值为一个空的 set。然后,遍历列表 my_list,将第一列作为字典的键,将第二列的值添加到对应的集合中。最后,遍历字典,对每个分组的集合求和,保存在 sum_dict 字典中,并输出结果。