如何计算 Python 列表中的 "least occurring" 元素?

How to compute the "least occurring" elements in a Python list?

假设我有一个 python 列表:

foo = ['A', 'A', 'A', 'B', 'C', 'C']

我怎样才能提取列表中的 "least occurring" 元素?

查找多数元素更容易,执行以下操作:

print(max(foo, key=foo.count))
'A'

但是,我怎样才能有效地找到出现次数最少的呢?在上面的示例中,它是 'B'.

就所有计数都相同的列表而言,例如['A', 'B', 'C', 'D'],我觉得所有项目都是"least occurring"。

max 替换为 min,它将完成您的工作。

试试这个:

foo = ['A', 'A', 'A', 'B', 'C', 'C']

print(min(foo, key=foo.count))

>>>'B'

如果您有多个元素的最小计数相同,您可以将 collections.Counter 与字典一起使用。

试试这个:

import collections

foo = ['A', 'B', 'C']

occurrences = collections.Counter(foo)

res =  [key for key in occurrences if all(occurrences[temp] >= occurrences[key] for temp in occurrences)] 

print(res)

>>>['A', 'B', 'c']

使用Counter一次迭代获取所有计数:

from collections import Counter

foo = ['A', 'A', 'A', 'B', 'C', 'C']

c = Counter(foo)
m = min(c.values())
mins = [x for x in foo if c[x] == m]