Fro*_*stX 0 python reverse dictionary
所以我有这个命令:
role_positions = {role1: 1, role2: 2, role3: 3}
Run Code Online (Sandbox Code Playgroud)
我如何反转它的值?像这样:
role_positions = {role1: 3, role2: 2, role3: 1}
Run Code Online (Sandbox Code Playgroud)
I'm*_*hdi 11
您可以获取列表形式的值,然后反转它们并使用键进行压缩并返回字典,如下所示:
# 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()))))
Run Code Online (Sandbox Code Playgroud)
对于旧版本的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()))))
Run Code Online (Sandbox Code Playgroud)