【问题标题】:extract dictionary from Counter object从 Counter 对象中提取字典
【发布时间】:2015-12-24 03:22:08
【问题描述】:

我想计算一个单词在 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, ....})

我怎样才能只得到字典?

【问题讨论】:

  • A Counter 是字典的子类——你可以用前者做的一切,你也可以用后者做。为什么要将其转换为香草字典?但这很容易:dict(counts).

标签: python dictionary counter


【解决方案1】:

如果您确实需要字典,则可以执行以下操作。

dict(counts)

尽管您将在counts 变量中进行所有操作,这些操作可以在普通的python 字典中执行,因为Counterdict 的子类。

来自Counter docs:

Counterdict 子类,用于计算可散列对象。

【讨论】:

  • @akira,请使用复选标记按钮接受足够的答案。这对你来说值得 +2 代表。
【解决方案2】:

Counter 只是一个 dict 子类。无需“获取”字典;它字典,并且支持所有的字典运算符和方法(尽管update 的工作方式略有不同)。

如果由于某种原因它报告自己是 Counter 而不是 dict 的事实真的困扰您,您可以执行 counts = dict(counts) 将其转换回超类。但没有必要这样做。

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 2020-03-13
    • 2013-06-09
    • 1970-01-01
    • 2013-11-19
    • 2017-02-28
    • 1970-01-01
    • 2016-09-13
    相关资源
    最近更新 更多