1

次のようにフォーマットされたデータから始めます。

data = [[0,1],[2,3],[0,1],[0,2]]

すべての値をその頻度で一度表現したいと思います。

output = [[[0,1],2],[[2,3],1],[[0,2],1]]

1D リストに関するこの問題に対する多くの解決策を見つけましたが、それらは 2D では機能しないようです。

4

1 に答える 1

1

そのcollections.Counter()目的は次のとおりです。

>>> from collections import Counter
>>> 
>>> Counter(map(tuple,data))
Counter({(0, 1): 2, (2, 3): 1, (0, 2): 1})
>>> Counter(map(tuple,data)).items()
[((0, 1), 2), ((2, 3), 1), ((0, 2), 1)]

リストオブジェクトはハッシュ可能ではないため、それらを辞書のキーとして使用できないことに注意してください。したがって、それらをハッシュ可能オブジェクトであるタプルに変換する必要があります。

于 2015-11-11T19:54:34.777 に答える