Python 值为列表时交换字典键和值

Python 值为列表时交换字典键和值,python,python-2.7,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']} 进入: 让我们假设我很高兴我的值是唯一的。您可以使用a和方法 您可以使用a和方法 {k:oldk代表oldk,swapdict中的oldv.items

与和类似,我想交换字典中的键和值

区别在于,我的值是列表,而不仅仅是单个值

因此,我想谈谈:

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

In [121]: swapdict
Out[121]: {'bar': ['c', 'd'], 'foo': ['a', 'b']}
进入:

让我们假设我很高兴我的值是唯一的。

您可以使用a和方法

您可以使用a和方法


{k:oldk代表oldk,swapdict中的oldv.items代表oldv中的k}-我还没有测试过这个,但我认为它会work@Alik是的!看起来效果不错。如果有人想加上这个作为答案,我会接受的。否则我会在一两天内亲自动手@Alik我想你应该回答它{k:oldk代表oldk,swapdict中的oldv.items代表oldv中的k}-我还没有测试过这个,但我想会的work@Alik是的!看起来效果不错。如果有人想加上这个作为答案,我会接受的。否则我会在一两天内亲自动手@我想你应该回答
{'a': 'foo', 'b': 'foo', 'c': 'bar', 'd': 'bar'}
In []: {k: oldk for oldk, oldv in swapdict.items() for k in oldv}
Out[]: {'a': 'foo', 'b': 'foo', 'c': 'bar', 'd': 'bar'}