需要在Python中取平均值很长,奇怪格式的数据集

时间:2011-07-20 18:38:56

标签: python list sorting tuples average

所以我有一大堆看起来像这样的数据

[('ART', [100, 234, 830, 304]), ('MATH', [600, 1400, 300, 340]), ('HISTORY', [2010, 300,   400, 600])]

我如何将其转换为一组数据,我可以对其中的数字进行平均然后排序?我正在使用Python 2.7

1 个答案:

答案 0 :(得分:6)

有:

input = [('ART', [100, 234, 830, 304]), 
         ('MATH', [600, 1400, 300, 340]), 
         ('HISTORY', [2010, 300, 400, 600])]

这样:

print sorted( ( (k,sum(v)/len(v)) for k,v in input ), key=lambda t: t[1] )

打印:

[('ART', 367), ('MATH', 660), ('HISTORY', 827)]