我有这个列表:
big_list = [['UPPER', 'UPPER', 'UPPER', 'LEI', 'DATE', 'ISIN', 'DEVISE', 'QUANTITY', 'QUANTITY', 'PRICE', 'MIC'],
['UPPER', 'UPPER', 'UPPER', 'LEI', 'DATE', 'ISIN', 'DEVISE', 'QUANTITY', 'QUANTITY', 'PRICE', 'MIC'],
['UPPER', 'UPPER', 'UPPER', 'LEI', 'DATE', 'ISIN', 'DEVISE', 'QUANTITY', 'QUANTITY', 'PRICE', 'MIC'],
['DEVISE'],
['DEVISE'],
['BORING', 'QUANTITY', 'QUANTITY'],
['BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'UPPER', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING'],
['BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'DEVISE', 'BORING', 'BORING', 'BORING', 'DEVISE', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING'],
['BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING']]
我想在我的big_list
中找到最常见的列表。
在此示例中,该函数将给我:
['UPPER', 'UPPER', 'UPPER', 'LEI', 'DATE', 'ISIN', 'DEVISE', 'QUANTITY', 'QUANTITY', 'PRICE', 'MIC']
会在big_list
中出现3次。
最短,最有效的方法是什么?
我尝试用collections.Counter()
来做,但是没有成功。
谢谢
答案 0 :(得分:6)
您快到了!
Counter(tuple(d) for d in big_list).most_common(1)[0]
(('UPPER', 'UPPER', 'UPPER', 'LEI', 'DATE', 'ISIN', 'DEVISE', 'QUANTITY', 'QUANTITY', 'PRICE', 'MIC'), 3)
您需要使列表成为可哈希的类型,在这种情况下为tuple
。