Замена избыточных ключей и значений в словаре в python - PullRequest
1 голос
/ 26 февраля 2020

Существует ли элегантный способ go через словарь и, если есть идентичные ключи и значения, удалите их и соедините остатки с новой парой ключ-значение?

например,

d = {Olomouc: Bratislava, Brno: Jihlava, Znojmo: Olomouc, Opole: Liberec, Trnava: Prague}

желаемый выход (Olomouc удалено и Znojmo:Bratislava пара создана):

d = {Znojmo: Bratislava, Brno: Jihlava, Opole: Liberec, Trnava: Prague}

1 Ответ

3 голосов
/ 26 февраля 2020

Вы можете сделать это, используя обратный словарь:

inv_d = {v: k for k, v in d.items()}
for v in inv_d:
    if v in d:
       d.pop(inv_d[v])
       d[inv_d[v]] = d[v]
       d.pop(v)
...