所以我有这个字典:
role_positions = {role1: 1, role2: 2, role3: 3}
如何反转它的值?这样的:
role_positions = {role1: 3, role2: 2, role3: 1}
您可以将值作为列表,然后将它们反向压缩,并返回字典,如下所示:
# python_version > 3.8
>>> dict(zip(role_positions, reversed(role_positions.values())))
{'role1': 3, 'role2': 2, 'role3': 1}
# python_version < 3.8
>>> dict(zip(role_positions, reversed(list(role_positions.values()))))
对于旧版本的python,为了确定不同运行时的顺序,我们需要将输入的dict
作为OrderedDict
:(这里我们可以读到一个很好的解释)
我们假设我们得到OrderDict
作为输入,下面的代码仅用于创建OrderDict
。如果我们在旧版本中使用下面的代码,我们可能会得到一个不同的OrderedDict(因为role_positions
可能会得到不同的顺序),但我们假设用户输入OrderDict
from collections import OrderedDict
# we supoose we input below dict
o_dct = OrderedDict((k, v) for k,v in role_positions.items())
dict(zip(o_dct, reversed(list(o_dct.values()))))