Python反向映射/字典类型不可破坏?

Python反向映射/字典类型不可破坏?,python,Python,我已经创建了一个类似于 d = {1: {"a":1, "b":2}, 2: {"a":1, "b":2}} 我通过循环对象来创建如上所述的词典 我还想在循环时创建上述字典的反面,它应该如下所示 d2 = {{"a":1, "b":2}: 1, {"a":1, "b":2}: 2} 我知道字典是一种不可破坏的类型,但同时我希望能够在不循环字典的情况下反向查找值 在python中有什么方法可以做到这一点吗 我还想在循环时创建上述字典的反面, 应该是这样的 d2 = {{"a":1, "b":2

我已经创建了一个类似于

d = {1: {"a":1, "b":2}, 2: {"a":1, "b":2}}
我通过循环对象来创建如上所述的词典

我还想在循环时创建上述字典的反面,它应该如下所示

d2 = {{"a":1, "b":2}: 1, {"a":1, "b":2}: 2}
我知道字典是一种不可破坏的类型,但同时我希望能够在不循环字典的情况下反向查找值

在python中有什么方法可以做到这一点吗

我还想在循环时创建上述字典的反面, 应该是这样的

d2 = {{"a":1, "b":2}: 1, {"a":1, "b":2}: 2}
不,你不能。字典的所有键都应该是可哈希的,而字典是不可哈希的 密钥不能有重复的条目 在python中有什么方法可以做到这一点吗

除非您不需要密钥的待字典,否则可以转换为其他数据结构。可能是一组项目列表

如果需要重复键,请将项列表的冻结集与


谷歌还给了我一个实现,你可以用它来

什么是{a:1,b:2},1或2的映射?请参阅关于使dicts可散列的内容。相反:d2={d[k]:k表示d}中的k。@GrijeshChauhan:还有其他事情需要考虑。看我的answer@Abhijit是的,这就是我发表评论和回答的原因。投票给你一个名字有点像一个冰冻的人