
Python如何转成有序字典
用户关注问题
如何在Python中创建一个有序字典?
我想知道在Python里如何创建一个保持键值顺序的字典,应该使用什么方法或者模块?
使用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)
Python 3.7之后普通字典是否还是无序的?
我看到有些文档说Python的普通dict是无序的,这在最新版本的Python里还是这样吗?
Python 3.7及以后版本中普通字典保持插入顺序
从Python 3.7版本开始,内置的dict类型默认保持键值对的插入顺序。这意味着在大多数情况下,不再需要有序字典来维护顺序。但如果需要更完整的OrderedDict功能(如倒序等),仍然可以选择collections.OrderedDict。
如何将普通字典转换成OrderedDict以保持顺序?
如果已经有一个普通字典,想确保它按照现有顺序排序,有什么办法可以转换为有序字典吗?
使用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相同的顺序。