有人可以解释一下 python (v3.5) 字典是如何排序的吗?
data = {"john": 23, "rick": 33, "mary": 63, "ron": 23, "joel": 51} for key in data: print("your name is " + key + ", and you are also " + str(data[key]) + " years old.")
实际输出:
your name is rick, and you are also 33 years old. your name is ron, and you are also 23 years old. your name is mary, and you are also 63 years old. your name is john, and you are also 23 years old. your name is joel, and you are also 51 years old.
预期输出(字典的顺序):
Your name is John, and you are also 23 years old. Your name is Rick, and you are also 33 years old. Your name is Mary, and you are also 63 years old. Your name is Ron, and you are also 23 years old. Your name is Joel, and you are also 51 years old.
这取决于您使用的 Python 版本。
字典使用底层哈希函数的排序。多种类型具有加盐哈希,因此这意味着您在每次调用时获得不同的顺序。
字典是按插入顺序排列的,即字典会记住插入项目的顺序。来自文档:
Guido van Rossum 在 中宣布从 Python 3.7 开始所有 Python 实现都必须保留插入顺序。
以上是理解Python字典的顺序的详细内容。更多信息请关注PHP中文网其他相关文章!