按多个键分组,并对字典列表的多个值进行汇总/平均,可以使用Python中的字典和列表的组合来实现。
首先,我们需要一个字典列表,其中每个字典包含多个键和对应的值。假设我们有以下字典列表:
data = [
{"key1": "A", "key2": "X", "value": 10},
{"key1": "A", "key2": "Y", "value": 20},
{"key1": "B", "key2": "X", "value": 30},
{"key1": "B", "key2": "Y", "value": 40},
{"key1": "C", "key2": "X", "value": 50},
{"key1": "C", "key2": "Y", "value": 60}
]
现在,我们可以使用循环遍历字典列表,并根据指定的键进行分组。在每个分组中,我们可以对对应的值进行汇总或平均计算。
以下是一个示例代码,演示如何按多个键分组,并对字典列表的多个值进行汇总:
from collections import defaultdict
# 创建一个默认值为0的字典,用于存储汇总结果
result = defaultdict(int)
# 遍历字典列表
for item in data:
# 获取键的组合
key = (item["key1"], item["key2"])
# 汇总值
result[key] += item["value"]
# 打印汇总结果
for key, value in result.items():
print(key, value)
输出结果为:
('A', 'X') 10
('A', 'Y') 20
('B', 'X') 30
('B', 'Y') 40
('C', 'X') 50
('C', 'Y') 60
以上代码使用了Python的defaultdict
来创建一个默认值为0的字典,用于存储汇总结果。然后,通过遍历字典列表,将每个键的组合作为字典的键,并将对应的值进行累加。最后,打印出汇总结果。
对于平均计算,只需稍作修改即可。在创建result
字典时,将默认值设置为一个包含两个元素的列表,第一个元素为0(用于存储累加值),第二个元素为0(用于存储计数器)。在遍历字典列表时,除了累加值之外,还需要对计数器进行累加。最后,通过除以计数器的值,得到平均值。
希望以上解答对您有帮助。如果您需要了解更多关于云计算、IT互联网领域的知识,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云