在python中按组获取平均值

在python中按组获取平均值,python,Python,输入如下: G1: 12 G2: 15 G1: 9 G3: 18 G2: 17 G3: 6 G1: 20 输出应为单个组的平均值,如G1:12+9+20/3=13.67, G2:15+17/2=16,G3:6+18/2=12为以下组创建词典列表: groups = [{'G1': 12}, {'G2': 15}, {'G1': 9}, {'G3': 18}, {'G2': 17}, {'G3':

输入如下:

G1: 12
G2: 15
G1: 9
G3: 18
G2: 17
G3: 6
G1: 20
输出应为单个组的平均值,如G1:12+9+20/3=13.67,
G2:15+17/2=16,G3:6+18/2=12

为以下组创建词典列表:

groups = [{'G1': 12},
          {'G2': 15},
          {'G1': 9},
          {'G3': 18},
          {'G2': 17},
          {'G3': 6},
          {'G1': 20}]    
将价值观融入团队:

result = dict()

for d in groups:
    for k, v in d.items():
        if k in result:
            result[k].append(v)
        else:
            result[k] = [v]
按组计算平均值:

averages = []

for d in result:
    averages.append((d, sum(result[d]) / len(result[d])))

print(averages)

[('G1', 13.666666666666666), ('G2', 16.0), ('G3', 12.0)]
>>> 

您可以将输入保存到.txt文件,然后可以尝试以下操作:

第一种方法:使用
collections.defaultdict

输出:

[('G3', 12.0), ('G1', 13.666666666666666), ('G2', 16.0)]
[('G1', 13.666666666666666), ('G2', 16.0), ('G3', 12.0)]
第二种方法:无任何外部模块的纯逻辑

输出:

[('G3', 12.0), ('G1', 13.666666666666666), ('G2', 16.0)]
[('G1', 13.666666666666666), ('G2', 16.0), ('G3', 12.0)]

所有人都在做同样的运动吗?你的代码在哪里?我想你应该解释一下你是如何存储你的“输入”的。给我们看一些代码,你尝试了什么?我们不是来帮你解决你的家庭作业/练习的,请写下你尝试了什么,失败了什么,以及你现在有什么代码。此外,详细说明保存输入的方式(或迭代方式)