需要元组中重复键的max,min,avg值,以及键数

时间:2013-09-19 20:21:43

标签: python list statistics tuples

使用python,我试图弄清楚如何从元组对列表中提取唯一键,包括最高,最低和平均值,以及有多少键的计数,例如使用此列表: / p>

[('a', 1), ('b', 3,), ('a', 9), ('b', 0), ('b', 9), ('a', 10), ('c', 2)]

我需要提取这些信息:

a: max = 10, min = 1, avg = 7 count = 3
b: max = 9, min = 0, avg = 4 count = 3
c: max = 2, min = 2, avg = 2, count = 1

2 个答案:

答案 0 :(得分:2)

您可以使用defaultdict收集信息。

from collections import defaultdict

data = [('a', 1), ('b', 3,), ('a', 9), ('b', 0), ('b', 9), ('a', 10), ('c', 2)]

pool = defaultdict(list)
for key, value in data:
    pool[key].append(value)

print(pool)

为自己实施minmax和平均(sum / len)的计算应该没有问题。

答案 1 :(得分:0)

您的目标看起来像字典词典。因此,构建字典将每个元组的第一个元素作为键。迭代元组并为每个元素建立值。 你应该得到类似的东西:

tally = {'a':{'count':3,'max':10,'avg':7,'min':1},...等。}