Python:添加字典项.

-2 python dictionary

当我们添加字典项目时,

我们使用x.items()+y.items(),但有一些我不明白的东西.

例如

如果x={2:2,1:3}y={1:3,3:1} x.items()+y.items()给予{3:1,2:2,1:3}

所以,正如你所看到的,答案在数学上可能是6x+2x^2+x^3,

但字典给出了x^3+2x^2+3x,

谁能告诉我任何更好的方法?

And*_*ffe 5

让我们清楚这里发生了什么!

In [7]: x.items()
Out[7]: [(1, 3), (2, 2)]

In [8]: y.items()
Out[8]: [(1, 3), (3, 1)]

In [9]:  x.items() + y.items()
Out[9]: [(1, 3), (2, 2), (1, 3), (3, 1)]

In [10]: dict(x.items() + y.items())
Out[10]: {1: 3, 2: 2, 3: 1}
Run Code Online (Sandbox Code Playgroud)

items()生成(键,值)元组+列表,并连接列表.然后,您可以将该列表重新放回字典中,该字典将通过使用给定键获取最后一个值来处理重复键.由于这次是重复值,因此无关紧要,但它可以:

In [11]: z = {1:4, 3:1}

In [12]: dict(x.items() + z.items())
Out[12]: {1: 4, 2: 2, 3: 1}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,1:3条目被丢弃......

(不清楚你对多项式的类比是什么......如果你真的想要表示算术上添加的多项式,你可能想要检查numpypoly1d@adwcollections.Counter描述.)