这是我的字典
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,真正的问题应该是“为什么不呢?“-无序字典通常被实现为hash table,其中元素的顺序是定义良好的,但不是立即可见的(the Python documentation used to state this)。您的观察结果与哈希表的规则完全匹配:显然是任意的,但顺序是恒定的。
此后,Python更改了其
dict
实现以保留插入顺序,并this is guaranteed as of Python 3.7。因此,实现不再构成纯散列表(但在实现中仍使用散列表)。内置字典类型的specification 不保留任何顺序,最好将字典看作是一组无序的
key: value
对。。。您可能需要检查^{} module ,这是一个具有键插入顺序的有序字典的实现。
相关问题 更多 >
编程相关推荐