Сортировка по ключам в зависимости от порядка значений в списке - PullRequest
0 голосов
/ 03 декабря 2018

В Python у меня есть dict, и я хочу, чтобы он сортировался в зависимости от порядка значений, соответствующих ключам в dict, которые хранятся в списке.Предположим следующее:

value_dict = {"Alpha": "The Alpha", "Beta": "The Beta", "Gamma": "The Gamma"}
key_order = ["Beta", "Gamma", "Alpha"]

Так что в этом случае я бы хотел, чтобы сортировка сортировалась таким образом, чтобы сначала шла клавиша «Beta», затем «Gamma», а затем «Alpha».

Есть хорошие идеи, как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Попробуйте это (используя sorted () с функцией ключа): sorted(value_dict.items(), key=lambda pair: key_order.index(pair[0]))

0 голосов
/ 03 декабря 2018

Использование OrderedDict

value_dict = {"Alpha": "The Alpha", "Beta": "The Beta", "Gamma": "The Gamma"}
key_order = ["Beta", "Gamma", "Alpha"]

# OrderedDict will keep the sequence intact
from collections import OrderedDict
OrderedDict(zip(key_order, [value_dict[i] for i in key_order]))

# OrderedDict([('Beta', 'The Beta'),
#              ('Gamma', 'The Gamma'),
#              ('Alpha', 'The Alpha')])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...