2015-12-02 100 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