Python 如何将计数器对象转换为dict?

Python 如何将计数器对象转换为dict?,python,dictionary,Python,Dictionary,数据帧: pair = collections.defaultdict(collections.Counter) e、 g 我想保留数据帧,但要更改此部分的类型{'word1':4,'word2':3}{'word1':2,'word3':4}``.它现在是一个计数器,我需要一个dict 我尝试从对中获取数据,但我不知道如何为每个文档创建dict: new_pair = collections.defaultdict(collections.Counter) for doc, tab in t

数据帧:

pair = collections.defaultdict(collections.Counter)
e、 g

我想保留数据帧,但要更改此部分的类型
{'word1':4,'word2':3}
{'word1':2,'word3':4}``.
它现在是一个
计数器
,我需要一个
dict

我尝试从
对中获取数据,但我不知道如何为每个文档创建
dict

new_pair = collections.defaultdict(collections.Counter)
for doc, tab in testing.form.items():
    for word, freq in tab.items():
        new_pair[doc][word] = freq 

我不想更改输出。我只需要在每个文档中,数据类型是
dict
,而不是
Counter

A
Counter
已经是
dict
-或者它的子类。但是,如果出于某种原因确实需要一个
dict
,那么它就是一行:

>>> c = Counter(word1=4, word2=3)
>>> c
Counter({'word1': 4, 'word2': 3})
>>> dict(c)
{'word1': 4, 'word2': 3}
任何映射(行为类似于字典的任何映射)都可以传递到
dict
,您将得到具有相同内容的
dict
。不需要迭代来自己构造它

这将提供一个循环,在主体中有一行而不是嵌套循环。但任何形式的代码:

 thing = a new empty collection
 for elem in old_thing:
    Add something to do with elem to thing

通常可以使用生成器表达式或列表、集合或dict在一行中完成。我们正在构建一个
dict
,因此(示例部分是您最感兴趣的部分)似乎是可能的。我将把它作为练习留给读者。;-)

也许您正在寻找:

>>> from collections import defaultdict
>>> pair = defaultdict(dict)
>>> pair[3][2]='hello'
>>>
>>> pair
defaultdict(<type 'dict'>, {3: {2: 'hello'}})
>>>
>>> pair[3]
{2: 'hello'}
>>> 
>>从集合导入defaultdict
>>>pair=defaultdict(dict)
>>>对[3][2]=“你好”
>>>
>>>配对
defaultdict(,{3:{2:'hello'}})
>>>
>>>配对[3]
{2:'你好'}
>>> 

计数器也是一个
指令
。但取决于你的需要,也许下面的代码就是你想要的

new_pair ={}
for doc, tab in pari.items():
    new_pair[doc] = {}
    for word, freq in tab.items():
        new_pair[doc][word] = freq

new\u对
dict是您想要的。祝你好运

要将计数器对象转换为字典:

from collections import Counter

arr  = list(map(int,input().split()))
freq = Counter(arr)
freq = dict(freq)

发布实际回溯和更多上下文。谁说“第一个参数必须可调用”?您想要什么?你能给出你想要的输出吗?@joaquin
collections.defaultdict
arguments就是这一行
collections.defaultdict(collections.Counter())
为什么不是
collections.defaultdict(collections.Counter)
您以前做过哪些?+1由于需要
计数器的功能,因此只能在之后将其转换为
dict
,因此这是唯一的方法。
new_pair ={}
for doc, tab in pari.items():
    new_pair[doc] = {}
    for word, freq in tab.items():
        new_pair[doc][word] = freq
from collections import Counter

arr  = list(map(int,input().split()))
freq = Counter(arr)
freq = dict(freq)