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