我有这样的字典:
d1 = {'0': {'a'}, '1': {'b'}, '2': {'c', 'd'}, '3': {'E','F','G'}}
Run Code Online (Sandbox Code Playgroud)
我想要这样的结果
d2 = {'a': '0', 'b': '1', 'c': '2', 'd': '2', 'E': '3', 'F': '3', 'G': '3'}
Run Code Online (Sandbox Code Playgroud)
所以我试过了
d2 = dict ((v, k) for k, v in d1.items())
Run Code Online (Sandbox Code Playgroud)
但是 value 被 set{} 包围,所以它不能很好地工作......有什么办法可以解决它吗?
您可以使用字典理解:
{v:k for k,vals in d1.items() for v in vals}
# {'a': '0', 'b': '1', 'c': '2', 'd': '2', 'E': '3', 'F': '3', 'G': '3'}
Run Code Online (Sandbox Code Playgroud)
请注意,您需要对此处每个键中的值进行额外级别的迭代才能获得平面字典。