如果我有一个列表列表a,我想要一个函数f()
a = [[1,2,3],[1,2,3],[0,5,6],[0,5,4]]
Run Code Online (Sandbox Code Playgroud)
给出输出:
out = f(a)
out
>> {[1,2,3]:2,[0,5,6]:1,[0,5,4]:1]}
Run Code Online (Sandbox Code Playgroud)
顺序也很重要,我需要它与我要使用的完全相似, Counter但不适用于列表。设置也不可行。是否有某种“更轻松”的方法,而不是像从头开始做整个事情一样Counter?
由于字典键不能包含可变对象,因此您需要将其转换为元组(不可变对象),然后执行以下操作Counter:
from collections import Counter
a = [[1,2,3],[1,2,3],[0,5,6],[0,5,4]]
print(Counter(map(tuple, a)))
Run Code Online (Sandbox Code Playgroud)
哪个输出:
Counter({(1, 2, 3): 2, (0, 5, 6): 1, (0, 5, 4): 1})
Run Code Online (Sandbox Code Playgroud)