python中的反向字典不起作用

python中的反向字典不起作用,python,dictionary,Python,Dictionary,这是用于在字典中的键和值之间切换的代码: for k in d: d[d[k]] = k d.pop(k) 这段代码的问题在于它执行了更多应该执行的操作,并且对于某些输入返回了错误的结果 出现此问题的原因是什么?在迭代字典时,您正在向字典添加值。一般来说,这是个坏主意。最好利用词典理解来构建一个新的词典 new_d = {v:k for k,v in d.items()} 在迭代字典时,向字典添加值。一般来说,这是个坏主意。最好利用词典理解来构建一个新的词典 new_d =

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

for k in d:
    d[d[k]] = k
    d.pop(k)
这段代码的问题在于它执行了更多应该执行的操作,并且对于某些输入返回了错误的结果


出现此问题的原因是什么?

在迭代字典时,您正在向字典添加值。一般来说,这是个坏主意。最好利用词典理解来构建一个新的词典

new_d = {v:k for k,v in d.items()}

在迭代字典时,向字典添加值。一般来说,这是个坏主意。最好利用词典理解来构建一个新的词典

new_d = {v:k for k,v in d.items()}

问题是,您在迭代字典时正在更改字典,谁知道这会导致什么问题

请注意,一般来说,不能反转字典:键必须是唯一的和可散列的,但值不必是唯一的。我假设你的字典有唯一的散列值,这样至少是可能的

然后我将使用字典理解创建一个新字典,并指定:

d = {value: key for (key, value) in d.items()}

问题是,您在迭代字典时正在更改字典,谁知道这会导致什么问题

请注意,一般来说,不能反转字典:键必须是唯一的和可散列的,但值不必是唯一的。我假设你的字典有唯一的散列值,这样至少是可能的

然后我将使用字典理解创建一个新字典,并指定:

d = {value: key for (key, value) in d.items()}
可能的重复可能的重复