Feat: Polynomial are displayed in nicer order!

This commit is contained in:
2019-10-30 21:12:58 +01:00
parent f8b24472d1
commit f12ec38746
7 changed files with 61 additions and 33 deletions

View File

@@ -6,6 +6,7 @@
#
# Distributed under terms of the MIT license.
from collections import OrderedDict
from mapytex.calculus.core.tree import Tree
from . import MO, MOstr
from .mo import Molecule
@@ -57,8 +58,9 @@ class MOpolynomial(Molecule):
raise TypeError("Coefs needs to be a dictionnary or a list")
self._coefs = _coefs
monomials = {}
for deg, coef in self._coefs.items():
monomials = OrderedDict()
for deg in sorted(self._coefs.keys()):
coef = self._coefs[deg]
if deg == 0:
monomials[deg] = coef
elif deg == 1 and coef == 1:
@@ -120,9 +122,9 @@ class MOpolynomial(Molecule):
:example:
>>> p = MOpolynomial('x', [1, 2, 3])
>>> p.monomials
{<MOnumber 0>: <MOnumber 1>, <MOnumber 1>: <MOMonomial 2x>, <MOnumber 2>: <MOMonomial 3x^2>}
OrderedDict([(<MOnumber 0>, <MOnumber 1>), (<MOnumber 1>, <MOMonomial 2x>), (<MOnumber 2>, <MOMonomial 3x^2>)])
>>> p.monomials.values()
dict_values([<MOnumber 1>, <MOMonomial 2x>, <MOMonomial 3x^2>])
odict_values([<MOnumber 1>, <MOMonomial 2x>, <MOMonomial 3x^2>])
"""
return self._monomials