-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,
谁能告诉我任何更好的方法?
让我们清楚这里发生了什么!
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条目被丢弃......
(不清楚你对多项式的类比是什么......如果你真的想要表示算术上添加的多项式,你可能想要检查numpy类poly1d或@adwcollections.Counter描述.)