<分区>
This question arises from this answer where one user uses
d.keys()
andd.values()
separately to initialise a dataframe.
众所周知,python 3.6以下版本的字典是无序的。
考虑以下形式的通用字典:
d = {k1 : v1, k2 : v2, k3 : v3}
其中键 k*
是任何可哈希对象,值 v*
是任何对象。当然不能保证顺序,但是d.keys()
和d.values()
的顺序呢?
Python 2.x
d.keys()
和 d.values()
都返回列表。例如,.keys()
以 [k2, k1, k3]
的顺序返回 d
的键。 总是保证d.values()
返回与[v2, v1, v3]
相同的相对顺序吗?此外,无论这些函数被调用多少次,顺序是否都保持不变?
Python 3.x (<3.6)
我不是 100% 确定,但我相信 .keys
和 .values
不能保证这里的任何顺序,因为它们是类似集合的结构,因此没有定义的顺序,并使您能够对它们执行类似集合的操作。但我仍然想知道在这种情况下,两次调用之间是否存在任何 类型的相对顺序。 我猜不会。如果有人能肯定或纠正我,我将不胜感激。