如何反转字典中的键值?



所以我有这个字典:

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

相关内容

  • 没有找到相关文章

最新更新