-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

あなたのターゲットは、辞書の辞書のように見えます。したがって、各タプルの最初の要素をキーとして辞書を作成します。タプルを繰り返し処理し、それぞれの値を構築します。次のような結果になるはずです。

集計 = {'a': {'count': 3, 'max': 10, 'avg': 7, 'min': 1}, ... など}

于 2013-09-19T20:57:48.953 に答える