如何在字典中交换键和值?
我接收到一个字典作为输入,想要返回一个新的字典,这个新字典的键是输入字典的值,而值则是对应的输入字典的键。输入字典的值是唯一的。
举个例子,假设我的输入是:
a = dict()
a['one']=1
a['two']=2
我希望我的输出是:
{1: 'one', 2: 'two'}
为了更清楚,我希望我的结果等同于以下内容:
res = dict()
res[1] = 'one'
res[2] = 'two'
有没有什么简单优雅的Python方法可以做到这一点?
19 个回答
62
从Python 2.7开始,包括3.0及以上版本,有一种可以说是更简短、更易读的写法:
>>> my_dict = {'x':1, 'y':2, 'z':3}
>>> {v: k for k, v in my_dict.items()}
{1: 'x', 2: 'y', 3: 'z'}
66
new_dict = dict(zip(my_dict.values(), my_dict.keys()))
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
206
Python 2:
res = dict((v,k) for k,v in a.iteritems())
Python 3(感谢@erik提供的帮助):
res = dict((v,k) for k,v in a.items())