【发布时间】:2018-03-29 14:03:21
【问题描述】:
设置
我有一个大字典,列表中有唯一键、唯一值和非唯一值。
字典看起来像,
d = {'a': ['1','2','3'],'b': ['1'],'c': ['1','3']}
问题
我想交换键和值,
d_inverse = {'1': ['a', 'b', 'c'], '2': ['a'],'3': ['a', 'c']}
我找到了以下关于交换键和值的答案,
关于用列表中的值交换键,
最后一个答案很接近,但不管理列表中的非唯一值。
也就是说,
{k: oldk for oldk, oldv in d.items() for k in oldv}
产生
{'1': 'c', '2': 'a', '3': 'c'}
我如何考虑非唯一值并且不丢失信息?
【问题讨论】:
-
考虑使用循环?
-
请注意,
d的列表中有int和string值,因此您的输出不太正确(它应该同时具有'1'和1键) . -
谢谢,我编辑了我的例子。
标签: python dictionary key