在 Python 中反转字典不起作用



这是在字典中的键和值之间切换的代码:

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()}

最新更新