Я думаю, что конкретный пример был бы полезен для пояснения того, как выглядит словарь, поскольку python напрямую не обеспечивает многомерный диалог.
Я предполагаю, что это выглядит примерно так: data = {'a': 1, 'b': 2, 'b': 3}
(обратите внимание, это не допустимый Python!), Так что то, что вы, когда вы делаете min(data[id].items(), key=lambda x: x[1])
, хотите, чтобы оно вернуло ('a', 1)
, и проверяете самое длинное согласование длины даст, возможно, [('b', 2), ('b', 3)].
Если вы это имеете в виду, то самый простой способ - использовать defaultdict с набором:
>>> data = defaultdict(set)
>>> data['a'].add(1)
>>> data['b'].add(2)
>>> data['b'].add(3)
>>> min(data.items(), key=lambda x: min(x[1]))
('a': {1})
>>> min(data.items(), key=lambda x: max(len(x[1])))
('b': {2, 3})