python: pb с отсортированной функцией
У меня проблема с функцией сортировки. У меня есть словарь, содержащий объекты корабля. Я пытаюсь разобрать свой словарь по названию лодки. Функция сортировки работает корректно, но мне не удается обновить словарь. Скажем иначе, чем сделать печать (отсортировано) У меня есть хорошо отсортированный словарь, но когда я делаю печать ( Dict), это уже не сортируется... Единственный способ - вернуть результат в мою функцию сортировки... Спасибо за помощь
подробности:
Класс Корабль (объект):
def __init__(self, id, name=None, country=None):
self.id, self.name, self.country = id, name, country
self.position = []
def __repr__(self):
return repr((self.id, self.name, self.country, self.position))
def add_position(self, position):
latitude, longitude, datestamp = position[0], position[1], position[2]
self.position.append(Position(latitude, longitude, datestamp))
self.sort_position()
def sort_position(self):
self.position = sorted(self.position, key=lambda x: x.datestamp)
Класс ShipDict(dict):
def __init__(self):
self.__dict__ = {}
pass
def sort_dict(self):
print("Resultat de la fonction de tri : ",sorted(self.items(), key=lambda x: x[1].name))
self = sorted(self.items(), key=lambda x: x[1].name)
Исполнение:
bateau1 = Ship(1,'Marchant', 'France')
bateau3 = Ship(3,'Zoo', 'Grece')
bateau2 = Ship(2,'Atlantique', 'Hollande')
Dict = ShipDict()
Dict[1] = bateau1
Dict[2] = bateau2
Dict[3] = bateau3
print("Dictionnaire avant tri: ",Dict)
Dict.sort_dict()
print("Dictionnaire après tri: ",Dict)
Результаты:
Dictionnaire avant tri: {1: (1, 'Marchant', 'France', []), 2: (2, 'Atlantique', 'Hollande', []), 3: (3, 'Zoo', 'Grece', [])}
Resultat de la fonction de tri : [(2, (2, 'Atlantique', 'Hollande', [])), (1, (1, 'Marchant', 'France', [])), (3, (3, 'Zoo', 'Grece', []))]
Dictionnaire après tri: {1: (1, 'Marchant', 'France', []), 2: (2, 'Atlantique', 'Hollande', []), 3: (3, 'Zoo', 'Grece', [])}