Python 中的字典排序
为什么 Python 字典看起来是有序的,而实际上它应该是无序的?
考虑一下以下字典:
propertyList = { "id": "int", "name": "char(40)", "team": "int", "realOwner": "int", "x": "int", "y": "int", "description": "char(255)", "port": "bool", "secret": "bool", "dead": "bool", "nomadic": "bool", "population": "int", "slaves": "int", }
打印字典时"n".join(myDict),观察到意外的顺序:
name nomadic dead port realOwner secret slaves team y x Population id description
虽然 Python 字典确实是无序的,但始终生成相同的顺序。
底层实现
在旧版本的 Python 中,字典是作为哈希表实现的。哈希表使用函数将键映射到数组中的特定位置,从而产生明显任意但一致的顺序。
有序字典实现
Python 自此修改了其dict 实现以保留插入顺序。此保证从 Python 3.7 开始生效。因此,字典的实现不再纯粹基于哈希表,尽管在构建过程中仍然使用了哈希表。
以上是为什么我的 Python 字典是无序的,但看起来却是有序的?的详细内容。更多信息请关注PHP中文网其他相关文章!