卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章35033本站已运行393

理解Python字典的顺序

理解python字典的顺序

问题内容

有人可以解释一下 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 版本。

Python 3.6 之前

字典使用底层哈希函数的排序。多种类型具有加盐哈希,因此这意味着您在每次调用时获得不同的顺序。

Python 3.6+

字典是按插入顺序排列的,即字典会记住插入项目的顺序。来自文档:

Python 3.7

Guido van Rossum 在 中宣布从 Python 3.7 开始所有 Python 实现都必须保留插入顺序。

卓越飞翔博客
上一篇: 如何使用 Golang 从 `template` 目录外部调用 SAM?
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏