反转一对一映射字典

NIl*_*rma 2 python dictionary

假设有一本字典

a = {'a':122,'b':123,'d':333,'e':'233'}
Run Code Online (Sandbox Code Playgroud)

现在我想将它恢复为一对一的字典,以便我们可以做到这一点.

我尝试过的:

In [67]: ivd=[(v,k) for (k,v) in a.items()]

In [68]: ivd
Out[68]: [(122, 'a'), (123, 'b'), ('233', 'e'), (333, 'd')]
Run Code Online (Sandbox Code Playgroud)

现在可能是我们可以将其ivd转换为字典的方式.我的问题是

  1. 如何将其更改ivd为字典?
  2. 有没有更多的pythonic解决方案可以做到这一点?我认为应该在那里.

Fed*_*lev 11

你可以使用dict构造函数:

ivd = dict((v, k) for (k, v) in a.iteritems())
Run Code Online (Sandbox Code Playgroud)

或者在python 2.7或更高版本中的dict理解:

ivd = {v: k for (k, v) in a.items()}
Run Code Online (Sandbox Code Playgroud)