У меня есть класс этого типа
class Challenge():
difficulty = Field(type=float)
category = Field(type=str)
, и у меня есть список объектов Challenge, которые я хочу отсортировать по-своему: я хочу упорядочить по сложности с помощью пользовательского заказа, а затемдля каждой сложности я хочу отсортировать объекты по категориям, с разным индивидуальным порядком для каждой сложности.
У меня уже есть диктовка с ключами упорядоченных трудностей и для каждой сложности упорядоченный список категорий. Мне нужно применить этот порядок к моему списку, и я не знаю, как применить эти критерии к сортировке.
Я достиг этой точки:
found_challenges.sort(key=lambda x: (x.difficulty, x.category))
Очевидно, это не сортирует покак я хочу сортировать. Как я могу применить эти пользовательские критерии к сортировке списка?
Пример:
ch_1 = Challenge(difficulty=1.0, category='one')
ch_2 = Challenge(difficulty=1.0, category='two')
ch_3 = Challenge(difficulty=2.0, category='one')
ch_4 = Challenge(difficulty=2.0, category='two')
и словарь порядка
{
2.0: ['one', 'two'],
1.0: ['two', 'one']
}
, поэтому порядок должен быть:
[ch_3, ch_4, ch_2, ch_1]