Python如何转成有序字典

Python如何转成有序字典

作者:Joshua Lee发布时间:2026-01-06阅读时长:0 分钟阅读次数:15

用户关注问题

Q
如何在Python中创建一个有序字典?

我想知道在Python里如何创建一个保持键值顺序的字典,应该使用什么方法或者模块?

A

使用collections.OrderedDict创建有序字典

在Python中,可以使用collections模块中的OrderedDict类来创建有序字典。与普通字典不同,OrderedDict会保持元素添加的顺序。示例代码:

from collections import OrderedDict

ordered_dict = OrderedDict()
ordered_dict['a'] = 1
ordered_dict['b'] = 2
ordered_dict['c'] = 3
print(ordered_dict)
Q
Python 3.7之后普通字典是否还是无序的?

我看到有些文档说Python的普通dict是无序的,这在最新版本的Python里还是这样吗?

A

Python 3.7及以后版本中普通字典保持插入顺序

从Python 3.7版本开始,内置的dict类型默认保持键值对的插入顺序。这意味着在大多数情况下,不再需要有序字典来维护顺序。但如果需要更完整的OrderedDict功能(如倒序等),仍然可以选择collections.OrderedDict。

Q
如何将普通字典转换成OrderedDict以保持顺序?

如果已经有一个普通字典,想确保它按照现有顺序排序,有什么办法可以转换为有序字典吗?

A

使用OrderedDict构造函数从普通字典转换

可以通过collections.OrderedDict的构造方法将一个普通字典转换为有序字典。需要注意的是,普通字典在Python 3.7及以后版本本身维持插入顺序,如果你想重构有序字典,可以这样做:

from collections import OrderedDict

normal_dict = {'x': 10, 'y': 20, 'z': 30}
ordered_dict = OrderedDict(normal_dict)
print(ordered_dict)

这样ordered_dict将是一个OrderedDict实例,且保持与normal_dict相同的顺序。