Python - Как получить ключи с одинаковыми значениями в словаре / - PullRequest
1 голос
/ 05 августа 2020

У меня есть dict:

{'Key_1': ['Value_1'], 'Key_2': ['Value_1', 'Value_2'], 'Key_3': ['Value_2'], 'Key_4': ['Value_3']}

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

Key_1 and Key_2 have same Value_1
Key_2 and Key_3 have same Value_2

Я попробовал это, чтобы получить общий values:

list_1 = []
output = []
for value in dictionary.values():
    for x in value:
         if x in list_1:
            if not x in output:
                output.append(x)
         else:
             list_1.append(x)

При этом я получаю общие значения, но не соответствующие ключи.

Заранее спасибо!

1 Ответ

3 голосов
/ 05 августа 2020
d = {'Key_1': ['Value_1'], 'Key_2': ['Value_1', 'Value_2'], 'Key_3': ['Value_2'], 'Key_4': ['Value_3']}

out = {}
for k, v in d.items():
    for vv in v:
        out.setdefault(vv, []).append(k)

for k, v in out.items():
    if len(v) > 1:
        print('{} have same {}'.format(' and '.join(v), k))

Печать:

Key_1 and Key_2 have same Value_1
Key_2 and Key_3 have same Value_2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...