如何使用Python按多个键对字典列表进行分组并计算各组的平均值?
- 内容介绍
- 文章标签
- 相关推荐
本文共计650个文字,预计阅读时间需要3分钟。
通过多个键值对进行分组并计算字典列表的平均值,最Pythonic的方法是使用`collections.defaultdict`来分组,然后对每个分组计算平均值。以下是具体实现:
pythonfrom collections import defaultdict
input=[ {'dept': '001', 'sku': 'foo', 'transId': 'uniqueId1', 'qty': 100}, {'dept': '001', 'sku': 'foo', 'transId': 'uniqueId2', 'qty': 150}, {'dept': '002', 'sku': 'bar', 'transId': 'uniqueId3', 'qty': 200}, {'dept': '002', 'sku': 'bar', 'transId': 'uniqueId4', 'qty': 250},]
使用defaultdict按dept分组grouped=defaultdict(list)for item in input: grouped[item['dept']].append(item['qty'])
计算每个分组的平均值averages={dept: sum(qties) / len(qties) for dept, qties in grouped.items()}
averages
输出结果将是一个字典,包含每个部门及其对应字典列表的平均值。
本文共计650个文字,预计阅读时间需要3分钟。
通过多个键值对进行分组并计算字典列表的平均值,最Pythonic的方法是使用`collections.defaultdict`来分组,然后对每个分组计算平均值。以下是具体实现:
pythonfrom collections import defaultdict
input=[ {'dept': '001', 'sku': 'foo', 'transId': 'uniqueId1', 'qty': 100}, {'dept': '001', 'sku': 'foo', 'transId': 'uniqueId2', 'qty': 150}, {'dept': '002', 'sku': 'bar', 'transId': 'uniqueId3', 'qty': 200}, {'dept': '002', 'sku': 'bar', 'transId': 'uniqueId4', 'qty': 250},]
使用defaultdict按dept分组grouped=defaultdict(list)for item in input: grouped[item['dept']].append(item['qty'])
计算每个分组的平均值averages={dept: sum(qties) / len(qties) for dept, qties in grouped.items()}
averages
输出结果将是一个字典,包含每个部门及其对应字典列表的平均值。

