为什么我在构造我的dict时会得到ErrorValue

Ale*_*ent 2 python

pkwargs = dict(("tickNum", tickNum), **kwargs)
Run Code Online (Sandbox Code Playgroud)

在这里,我将元组中的键值对添加到键值对列表中,并将其作为新的dict输出.它提出了ValueError: dictionary update sequence element #0 has length 7; 2 is required.

pkwargs = dict(("tickNum", tickNum), kwargs)
Run Code Online (Sandbox Code Playgroud)

在这里,我将相同的键值对添加到dict,而不是将其作为新的dict输出.它提出了TypeError: dict expected at most 1 arguments, got 2.

我不明白为什么......我也不知道如何解决这个问题.

Ale*_*all 6

pkwargs = dict(("tickNum", tickNum), **kwargs)
Run Code Online (Sandbox Code Playgroud)

第一个参数需要是可迭代的对.既然你直接给了一对它就把它解释为一个可迭代的和"tickNum"一对,它有7个元素(字符),而不是2.执行此操作:

pkwargs = dict([("tickNum", tickNum)], **kwargs)
Run Code Online (Sandbox Code Playgroud)

或者更好的是:

pkwargs = dict(tickNum=tickNum, **kwargs)
Run Code Online (Sandbox Code Playgroud)

这里tickNum成为关键字参数之一以及其余部分kwargs.