Как я могу извлечь все значения из словаря с (уникальный ключ и максимальное значение) - PullRequest
0 голосов
/ 25 июня 2018

Как извлечь все значения из словаря с помощью (уникальный ключ и максимальное значение)?

Пример:

{('117', 14): 10, ('113', 11): 5, ('117', 16): 3, ('113', 5): 1}

Вывод будет:

{('117', 14): 10, ('113', 11): 5}

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете использовать itertools.groupby:

import itertools
d = {('117', 14): 10, ('113', 11): 5, ('117', 16): 3, ('113', 5): 1}
new_d = [list(b) for _, b in itertools.groupby(sorted(d.items(), key=lambda x:x[0][0]), key=lambda x:x[0][0])]
final_result = dict(max(i, key=lambda x:x[-1]) for i in new_d)

Выход:

{('113', 11): 5, ('117', 14): 10}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...