Python:从2D列表创建频率表

Python:从2D列表创建频率表,python,list,multidimensional-array,compression,data-science,Python,List,Multidimensional Array,Compression,Data Science,从如下格式的数据开始: data = [[0,1],[2,3],[0,1],[0,2]] 我想用频率表示每个值一次: output = [[[0,1],2],[[2,3],1],[[0,2],1]] 我已经为1D列表找到了许多解决方案,但它们似乎不适用于2D。这就是collections.Counter()的作用: >>> from collections import Counter >>> >>> Counter(map(tuple

从如下格式的数据开始:

data = [[0,1],[2,3],[0,1],[0,2]]
我想用频率表示每个值一次:

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

我已经为1D列表找到了许多解决方案,但它们似乎不适用于2D。

这就是
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)]
请注意,由于列表对象不可散列,因此不能将它们用作字典键。因此,需要将它们转换为tuple,tuple是一个可散列的对象