Skip to main content
 首页 » 编程设计

Python:修改字典使键成为值,值成为键

2025年05月04日17yjmyzz

假设我有一个字典字典,具有以下值:

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+