Инвертировать ключевые ключи и значения исходного словаря

Например, я вызываю эту функцию, передавая словарь в качестве параметра:

>>> inv_map({'a':1, 'b':2, 'c':3, 'd':2})
{1: ['a'], 2: ['b', 'd'], 3: ['c']}
>>> inv_map({'a':3, 'b':3, 'c':3})
{3: ['a', 'c', 'b']}
>>> inv_map({'a':2, 'b':1, 'c':2, 'd':1})
{1: ['b', 'd'], 2: ['a', 'c']}

, если

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

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

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

, используя это

dict((v,k) for k, v in map.iteritems())

, кто-то знает, как это сделать для моего дела?

8
задан bluish 5 September 2011 в 07:39
поделиться