2015-09-26 31 views
2

我想统计一个词出现在sting列表中的次数。从计数器对象提取词典

['this is a red ball','this is another red ball'] 

我写了下面的代码

counts = Counter() 
for sentence in lines: 
    counts.update(word.strip('.,?!"\'').lower() for word in sentence.split()) 

它给了我下面的格式

Counter({'': 6, 'red': 2, 'this': 2, ....}) 

我怎么只能拿到字典的结果?

+2

“Counter”是字典的一个子类 - 您可以对前者做任何事情,您可以对后者进行处理。你为什么要把它转换成一个香草字典?但很容易:'字典(计数)'。 – jonrsharpe

回答

3

计数器只是一个字典子类。没有必要“获得”字典;它一个字典,并支持所有的字典操作符和方法(虽然update工作略有不同)。

如果由于某种原因,它报告本身是一个计数器而不是字典真的困扰你的事实,你可以只是做counts = dict(counts)将其转换回超。但是没有必要这样做。

8

如果字典真的是你想要的,你可以做以下事情。

dict(counts) 

虽然你将拥有所有counts变量,你可以在一个正常的Python字典做,因为Counterdict一个子类的操作。

Counter docs:

Counter是用于计数可哈希对象dict子类

+2

@akira,请使用复选标记按钮接受足够的答案。这是值得的+2代表给你。 – kdbanman