私は次のデータ構造を持っています:
data = [[{'Posit': '0', 'R': '0', 'B': '0', 'G': '255'}, {'Posit': '1000', 'R': '255', 'B': '0', 'G': '0'}],
[{'Posit': '0', 'R': '0', 'B': '0', 'G': '255'}, {'Posit': '1000', 'R': '255', 'B': '0', 'G': '0'}],
[{'Posit': '0', 'R': '0', 'B': '0', 'G': '255'}, {'Posit': '1000', 'R': '255', 'B': '0', 'G': '0'}],
[{'Posit': '0', 'R': '255', 'B': '0', 'G': '255'}, {'Posit': '1000', 'R': '0', 'B': '255', 'G': '0'}],
[{'Posit': '0', 'R': '0', 'B': '0', 'G': '255'}, {'Posit': '1000', 'R': '255', 'B': '0', 'G': '0'}],
[{'Posit': '0', 'R': '0', 'B': '0', 'G': '255'}, {'Posit': '1000', 'R': '255', 'B': '0', 'G': '0'}],
[{'Posit': '0', 'R': '0', 'B': '0', 'G': '255'}, {'Posit': '1000', 'R': '255', 'B': '0', 'G': '0'}],
[{'Posit': '0', 'R': '0', 'B': '0', 'G': '255'}, {'Posit': '1000', 'R': '255', 'B': '0', 'G': '0'}]]
上記のデータ構造で最も一般的な辞書のリストを見つけたいと思います。
私の最初のアイデアは、most_common
からの関数を使用することでしたcollections.Counter
が、
from collections import Counter
c = Counter()
for point in data:
c[point] += 1
TypeError
リストはハッシュできないため、失敗します。
次のアイデアは、タプルは不変であるため、リストをタプルに変換することでした。
from collections import Counter
c = Counter()
for point in data:
c[tuple(point)] += 1
TypeError
でも、辞書もハッシュ化できないと言われました。
それで、私が望むことを達成するためのPythonicの方法は何ですか?