这是一段在字典中切换键值的代码:
for k in d:
d[d[k]] = k
d.pop(k)
这段代码的问题是它做了更多它应该做的操作,并且对于某些输入返回了错误的结果
这个问题的原因是什么?
请您参考如下方法:
问题是您在迭代字典的同时更改字典,谁知道会导致什么问题。
请注意,一般来说您不能反转字典:键必须是唯一且可哈希的,但值不必如此。我假设您的字典具有唯一的可散列值,因此它至少是可能的。
然后我会使用字典理解来创建一个新字典,并分配它:
d = {value: key for (key, value) in d.items()}
