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', [])}

0 ответов

Другие вопросы по тегам