这是在字典中的键和值之间切换的代码:
for k in d:
d[d[k]] = k
d.pop(k)
此代码的问题在于它进行了更多应该执行的操作,并且对于某些输入返回错误的结果
这个问题的原因是什么?
问题是你在迭代字典时正在更改字典,谁知道这会导致什么问题。
请注意,一般来说,您不能反转字典:键必须是唯一且可哈希的,但值不必是唯一且可哈希的。我假设您的字典具有唯一的可哈希值,因此至少是可能的。
然后,我将使用字典理解来创建一个新字典,并分配它:
d = {value: key for (key, value) in d.items()}
在遍历字典时,您正在向字典中添加值。 一般来说,这是一个坏主意。 最好使用字典理解来构建一个新词典。
new_d = {v:k for k,v in d.items()}