Как получить ключи и значения из словаря Python - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть словарь, как указано ниже

my_dict = {4: 8, 3: 11, 4: 10, 5: 10, 8: 5, 9: 5, 10: 10, 5: 2}

Я пытаюсь выяснить, как получить отсортированный список, когда key == value, а также когда итерация значения становится ключом.В результате получается

[[2,5,4,8], [10]]

Есть идеи?

1 Ответ

0 голосов
/ 28 сентября 2019

Работает ли это для вас:

my_dict = {1: 3, 4: 2, 2: 6, 10: 10}

loop_backs = set()
new_dict = my_dict.copy()
for k,v in my_dict.items():
    if k == v:
        loop_backs |= {k}
        del new_dict[k]
repeated = set(new_dict.values()).intersection(new_dict.keys()) | loop_backs
res = set()
for k,v in new_dict.items():
    if (k in repeated) or (v in repeated):
        res |= {k,v}
print(res, loop_backs)

{2, 4, 6} {10}

...