假设我有一个字典字典,具有以下值:
dict1 = {'1': ['a','b', 'c', 'd'], '2': ['e','f', 'g', 'h']}
我如何使其中一个值成为新字典 dict1 中的键?
dict2 = {'d': ['a','b', 'c', '1'], 'h': ['e','f', 'g', '2']}
请您参考如下方法:
In [12]: d = {'1': ['a','b', 'c', 'd'], '2': ['e','f', 'g', 'h']}
In [13]: dict((v[-1],v[:-1]+[k]) for k,v in d.iteritems())
Out[13]: {'d': ['a', 'b', 'c', '1'], 'h': ['e', 'f', 'g', '2']}
k 是原始键,v 是原始值(列表)。结果,v[-1] 成为新键,v[:-1]+[k] 成为新值。
编辑 正如 Adrien Plisson 所指出的,Python 3 不支持 iteritems。此外,在 Python 2.7+ 和 3 中,可以使用字典理解:
{v[-1]: v[:-1]+[k] for k,v in d.items()} # Python 2.7+
