嵌套字典Python的相反顺序

2024-10-01 05:06:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个两层字典,想要一个简单的命令或函数(如果可能的话)来颠倒字典的顺序,但只在外层,而不是内层。例如,如果我的字典如下所示:

{'dictA': {'key_1': 'value_1'}, 'dictB': {'key_2': 'value_2'}, 'dictC': {'key_3', 'value_3'}}

我想改成以下内容:

{'dictC': {'key_3', 'value_3'}, 'dictB': {'key_2': 'value_2'}, 'dictA': {'key_1': 'value_1'}}

我该怎么做?我尝试过像invertdict()和inv_map={v: k for k, v in my_map.items()}这样的方法,但都没有成功

感谢您的帮助


Tags: key函数命令mapfor字典顺序value
3条回答

下面的代码可以实现此目的:

dict(reversed(current_dct.items()))

颠倒项目:

>>> dict(reversed(d.items()))
{'dictC': {'value_3', 'key_3'}, 'dictB': {'key_2': 'value_2'}, 'dictA': {'key_1': 'value_1'}}

实现reversed的解决方案似乎在较旧的Python版本(即3.8之前)中不起作用。这个解决方案应该可以在Python3.x中使用

代码

so_dict = {'dictA': {'key_1': 'value_1'}, 'dictB': {'key_2': 'value_2'}, 'dictC': {'key_3', 'value_3'}}

{k: v for k, v in sorted(list(so_dict.items()), key=lambda x:x[0].lower(), reverse=True)}

输出

{'dictC': {'key_3', 'value_3'},
 'dictB': {'key_2': 'value_2'},
 'dictA': {'key_1': 'value_1'}}

相关问题 更多 >