如何计算「;“最少发生”;Python列表中的元素?

如何计算「;“最少发生”;Python列表中的元素?,python,list,counter,Python,List,Counter,假设我有一个python列表: foo = ['A', 'A', 'A', 'B', 'C', 'C'] 如何提取列表中“最少发生”的元素 查找多数元素更容易,请执行以下操作: print(max(foo, key=foo.count)) 'A' 然而,我如何才能有效地找到发生最少的?在上面的示例中,它是'B' 就所有计数相同的列表而言,例如,['A',B',C',D'],我认为所有项目都是“最少发生的” 用min替换max,它将完成您的工作 试试这个: foo = ['A', 'A', '

假设我有一个python列表:

foo = ['A', 'A', 'A', 'B', 'C', 'C']
如何提取列表中“最少发生”的元素

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

print(max(foo, key=foo.count))
'A'
然而,我如何才能有效地找到发生最少的?在上面的示例中,它是
'B'


就所有计数相同的列表而言,例如,
['A',B',C',D']
,我认为所有项目都是“最少发生的”

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

试试这个:

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

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

>>>'B'
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']
如果有多个元素的计数最少相同,则可以使用字典中的
collections.Counter

试试这个:

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

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

>>>'B'
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']

使用
计数器
在一次迭代中获得所有计数:

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]