ber*_*436 1 python counter tuples list
我有一个元组列表,每个元组都是一对列表.所以我的数据看起来像:
mylist = [(['foo', 'bar'], ['bar', 'bar']),(['bar', 'bar'],['bar', 'bar']),(['foo', 'bar'], ['bar', 'bar'])]
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
pprint.pprint(Counter(mylist).mostCommon(1)) # returns {(['foo', 'bar'], ['bar', bar']) : count 2}
Run Code Online (Sandbox Code Playgroud)
但是当我做Counter(mylist)python时抛出错误,"不可用的类型列表" - 就像在这个问题中.python:不可用的类型错误
如果您想按照确切的内容计算它们,只需将列表转换为元组:
Counter((tuple(l1), tuple(l2)) for l1, l2 in mylist).most_common(1)
Run Code Online (Sandbox Code Playgroud)
演示:
>>> from collections import Counter
>>> mylist = [(['foo', 'bar'], ['bar', 'bar']), (['bar', 'bar'], ['bar', 'bar']), (['foo', 'bar'], ['bar', 'bar'])]
>>> Counter((tuple(l1), tuple(l2)) for l1, l2 in mylist).most_common(1)[0]
((('foo', 'bar'), ('bar', 'bar')), 2)
Run Code Online (Sandbox Code Playgroud)
现在你的内容可以清洗,可以计算.如果必须,您可以随时将密钥重新转换为列表.