当值是列表时交换字典键和值

Lon*_*Rob 2 python python-2.7

这个问题这个问题类似,我想交换字典中的键和值。

不同的是,我的值是列表,而不仅仅是单个值。

因此,我想转向:

In [120]: swapdict = dict(foo=['a', 'b'], bar=['c', 'd'])

In [121]: swapdict
Out[121]: {'bar': ['c', 'd'], 'foo': ['a', 'b']}
Run Code Online (Sandbox Code Playgroud)

进入:

{'a': 'foo', 'b': 'foo', 'c': 'bar', 'd': 'bar'}
Run Code Online (Sandbox Code Playgroud)

假设我很高兴我的价值观是独一无二的。

Del*_*gan 5

可以使用字典理解.items()方法。

In []: {k: oldk for oldk, oldv in swapdict.items() for k in oldv}
Out[]: {'a': 'foo', 'b': 'foo', 'c': 'bar', 'd': 'bar'}
Run Code Online (Sandbox Code Playgroud)