2015-12-02 98 views
1

有没有办法在计数器中收集发生数量的值?
Python中的计数器

例:
比方说,我有一个列表:

list = ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'd', 'd'] 

当我这样做的计数器:

Counterlist = Counter(list) 

我会得到:

Counter({'b': 3, 'a': 3, 'c': 3, 'd': 2}) 

然后我可以选择让我们说a并得到3:

Counterlist['a'] = 3 

但我怎么能选择出现的数字'3'?
喜欢的东西:

Counterlist[3] = ['b', 'a', 'c'] 

这可能吗?

+1

'计数器'用于过滤要计数的项目,而不是反过来。最简单的方法是将它传递给'defaultdict(list)'。 – jonrsharpe

+0

'[v for v在Counterlist if Counterlist [v] == 3]' –

回答

2

您可以编写以下

import collections 

my_data = ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'd', 'd'] 
result = collections.defaultdict(list) 
for k, v in collections.Counter(my_data).items(): 
    result[v].append(k) 

,然后访问result[3]获得与计数的字符。

+0

哇,这真的很优雅。谢谢@Simeon Visser! – VlS