如果我有一个列表a
,我想要一个函数f()
a = [[1,2,3],[1,2,3],[0,5,6],[0,5,4]]
给出输出:
out = f(a)
out
>> {[1,2,3]:2,[0,5,6]:1,[0,5,4]:1]}
顺序也很重要,我需要它完全相似
我本打算使用Counter
,但它不适用于列表。设置也不可行。除了使用Counter
之类的方法从头开始做全部事情之外,是否还有某种“更轻松”的方法?
答案 0 :(得分:5)
由于字典键不能包含可变对象,因此您需要将其转换为元组(不可变对象),然后执行Counter
:
from collections import Counter
a = [[1,2,3],[1,2,3],[0,5,6],[0,5,4]]
print(Counter(map(tuple, a)))
哪个输出:
Counter({(1, 2, 3): 2, (0, 5, 6): 1, (0, 5, 4): 1})