X-Git-Url: https://scm.cri.ensmp.fr/git/linpy.git/blobdiff_plain/af70cb24e2db153fa0afad42296cc1528b82b2a2..f42e2bf07b9fb5b19b9ab243079fc69234ef4549:/linpy/geometry.py diff --git a/linpy/geometry.py b/linpy/geometry.py index 43344e4..cc19a72 100644 --- a/linpy/geometry.py +++ b/linpy/geometry.py @@ -85,14 +85,15 @@ class Coordinates: if isinstance(coordinates, Mapping): coordinates = coordinates.items() self = object().__new__(cls) - self._coordinates = OrderedDict() - for symbol, coordinate in sorted(coordinates, - key=lambda item: item[0].sortkey()): + self._coordinates = [] + for symbol, coordinate in coordinates: if not isinstance(symbol, Symbol): raise TypeError('symbols must be Symbol instances') if not isinstance(coordinate, numbers.Real): raise TypeError('coordinates must be real numbers') - self._coordinates[symbol] = coordinate + self._coordinates.append((symbol, coordinate)) + self._coordinates.sort(key=lambda item: item[0].sortkey()) + self._coordinates = OrderedDict(self._coordinates) return self @property