を平らにして、その上でlist of list
使用collections.Counter
してください。次に、Counter.most_common()
メソッドを使用して、出現回数が最大のものから最小のものまでの要素list
を取得します。tuple
>>> lst = [['1','2','3','4'],['1','1','1','1'],['1','2','3','4']]
>>> flattened_list = [elem for sublist in lst for elem in sublist]
>>> flattened_list
['1', '2', '3', '4', '1', '1', '1', '1', '1', '2', '3', '4']
>>>
>>> from collections import Counter
>>>
>>> counter = Counter(flattened_list)
>>> counter.most_common()
[('1', 6), ('3', 2), ('2', 2), ('4', 2)]
>>>
>>> counter.most_common(1)
('1', 6)
または、メソッドを使用して、リストから最も一般的な要素を取得できますflatten
。
>>> max(set(flattened_list), key=flattened_list.count)
'1'
次のようにリストを平坦化することもできます: -
>>> sum(lst, [])
['1', '2', '3', '4', '1', '1', '1', '1', '1', '2', '3', '4']
したがって、ワンライナーとして、次のようにすることができます: -
>>> lst = [['1','2','3','4'],['1','1','1','1'],['1','2','3','4']]
>>> max(set(sum(lst, [])), key=sum(lst, []).count)
'1'
もちろん、最後のリストは同じ内容の 2 つのリストを作成します。