为什么旧 Python 版本中的字典键并不总是有序的?

Susan Sarandon
发布: 2024-11-19 04:23:02
原创
268 人浏览过

Why Are Dictionary Keys in Older Python Versions Not Always Ordered?

旧版本 Python 中字典中键的顺序

在 3.6 之前的 Python 版本中,不保证字典中键的顺序。在迭代字典或访问其键时,这可能会导致意外结果。

要理解此问题,请考虑以下代码:

d = {'a': 0, 'b': 1, 'c': 2}
l = d.keys()
print(l)
登录后复制

在此示例中,keys() 方法返回字典中键的列表。但是,不保证列表中键的顺序。在 Python 2.7 及更早版本中,键按插入顺序返回。但是,从 Python 3.0 开始,键以任意顺序返回。

如果您依赖字典中键的顺序,这种不一致可能会出现问题。例如,如果您使用字典来存储购物清单中的项目,则您可能希望按照将它们添加到字典中的顺序返回键。然而,在Python 3.0版本开始,这是不保证的。

要解决这个问题,有两种选择。第一个是使用collections.OrderedDict类。这个类提供了对插入顺序的保证。代码展示了如何使用OrderedDict:

from collections import OrderedDict

d = OrderedDict([('a', 0), ('b', 1), ('c', 2)])
l = list(d.keys())
print(l)  # ['a', 'b', 'c']
登录后复制

另一个选择是使用sorted()函数对key进行升序排序。但是,这需要额外的步骤,并且可能并不总是所需的行为。

对于 Python 3.6 及更高版本,字典默认保持插入顺序。但是,如果您需要跨不同 Python 实现保证插入顺序,仍然建议使用 OrderedDict。

以上是为什么旧 Python 版本中的字典键并不总是有序的?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板