Сохранение того же порядка для словаря - PullRequest
0 голосов
/ 11 июля 2020

Мне нужно написать функцию под названием updateHand(hand, word), которая делает это:

Предполагается, что «рука» имеет все буквы в слове. Другими словами, это предполагает, что сколько бы раз буква ни появлялась в «слове», в «руке» есть как минимум столько же букв.

Обновляет руку: использует буквы в данном слове и возвращает новую руку без этих букв.

Не имеет побочных эффектов: не изменяет руку.

word: string hand: dictionary (string -> int) возвращает: dictionary ( string -> int)

Я написал код, и все работает, кроме того факта, что когда возвращается 'hand', он находится в другом порядке:

updateHand({'u': 1, 'q': 1, 'a': 1, 'm': 1, 'l': 2, 'i': 1}, 'quail')

{'u': 0, 'i': 0, 'm': 1, 'a': 0, 'l': 1, 'q': 0}

Может кто-нибудь даст мне решение или даже намек на эту проблему, потому что я не понимаю ...

1 Ответ

0 голосов
/ 11 июля 2020

dict не возвращает элементы по порядку вставки.

Вам нужно OrderedDict :

from collections import OrderedDict

my_dict = OrderedDict()
my_dict['a'] = 1
...

Это касается только python версии <3.6 . Начиная с python 3.6, порядок размещения сохраняется. </p>

...