-6

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

[('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
4

2 回答 2

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和 average ( sum / len )的计算应该没有问题。

于 2013-09-19T20:49:58.377 回答
0

你的目标看起来像一本字典。因此,以每个元组的第一个元素作为键来构建字典。遍历元组并为每个元组建立值。你应该最终得到类似的东西:

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

于 2013-09-19T20:57:48.953 回答