Как я могу использовать функцию сортировки, если я хочу отсортировать по возрастанию по критерию и по убыванию по другому критерию? - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь реализовать алгоритм * в Python в качестве учебного упражнения. У меня есть список узлов, называемый open, который содержит строки, которые представляют имена узлов графа. Пример: open["node_a", "node_b", "node_c"]. У меня также есть два defaultdict словаря, f_estim и g, которые содержат такие значения, как {"name_of_node" : integer_representing_a_certain_cost_associated_to_the_node}. Мне необходимо отсортировать список open по возрастанию по значению, связанному с f_estim, и, если это значение равно двум узлам, по убыванию в соответствии со значением в g. Я сортирую по возрастанию так: open.sort(key=lambda node: f_estim[node]). Как я могу также сортировать по убыванию при достижении двух равных значений? Я не смог найти ответ в документации по функции sort. Спасибо!

1 Ответ

0 голосов
/ 21 марта 2020

Вы можете сделать что-то вроде этого:

open.sort(key=lambda node: (f_estim[node], -g[node]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...