Python обратный / инвертировать отображение - PullRequest
539 голосов
/ 27 января 2009

Приведенный словарь выглядит так:

my_map = { 'a': 1, 'b':2 }

Как можно инвертировать эту карту, чтобы получить:

inv_map = { 1: 'a', 2: 'b' }

ПРИМЕЧАНИЕ РЕДАКТОРА: map изменено на my_map, чтобы избежать конфликтов со встроенной функцией map. Некоторые комментарии могут быть затронуты ниже.

Ответы [ 31 ]

0 голосов
/ 24 ноября 2015

, если предметы не уникальны, попробуйте это:

     dict={}
     dict1={}
     num=int(raw_input(" how many numbers in dict?--> "))
     for i in range (0,num):
         key=raw_input(" enter key --> ")
         value=raw_input("enter value --> ")
         dict[key]=value
     keys=dict.keys()
     values=dict.values()
     for b in range (0,num):
         keys[b],values[b]=values[b],keys[b]
         dict1[keys[b]]=values[b]
     print keys
     print values
     print dict1
...