如何计算「;“最少发生”;Python列表中的元素?
假设我有一个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', '
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]