Поиск ключей с кратчайшим списком значений в словаре - PullRequest
0 голосов
/ 05 апреля 2020

Вот мой словарь:

D = {'G': ['R'],
 'L': ['H'],
 'H': ['H', 'L', 'T', 'M'],
 'T': ['R'],
 'S': ['M', 'L', 'H'],
 'M': ['R']} 

Я хочу создать список ключей с кратчайшим списком значений в этом словаре. В этом случае я получу вывод:

['G', 'L', 'T', 'M']

У меня есть этот код, который успешно находит первый ключ с кратчайшим списком значений, однако не создает список.

min_key, min_value = min(d.items(), key = lambda x: len(set(x[1])))

Этот код просто возвращает 'G'.

Это была моя попытка создать список:

li = [k for k, v in d.items() if v == min_key] 
li

Это возвращает пустой список.

1 Ответ

1 голос
/ 05 апреля 2020

Поскольку у вас самый короткий список, хранящийся в min_value, вы можете использовать его длину и сделать

>>> [k for k, v in d.items() if len(v) == len(min_value)] 
['G', 'L', 'T', 'M']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...