>>> from collections import Counter
>>> li=[ [1,2,3], [2,3,4], [1,2,3] ]
>>> Counter(str(e) for e in li)
Counter({'[1, 2, 3]': 2, '[2, 3, 4]': 1})
只要每个子列表中没有嵌套可变变量(例如[ [1,2,3], [2,3,4,[11,12]], [1,2,3] ]
:
>>> Counter(tuple(e) for e in li)
Counter({(1, 2, 3): 2, (2, 3, 4): 1})
如果您确实在子列表中嵌套了其他不可使用的类型,请使用str
or repr
方法,因为它也处理所有子列表。或者递归地将所有内容转换为元组(更多工作)。