Merge pull request #74 from 0x0400/patch-4

Update 4-mastering-container-types.md
This commit is contained in:
piglei 2021-08-22 11:09:27 +08:00 committed by GitHub
commit a44a6ca526
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 4 deletions

View File

@ -9,9 +9,9 @@
图片来源: <a href="https://www.flickr.com/photos/chiotsrun/6002476959/in/photolist-a9qgh4-W4eQ1j-7MrCfo-4ARLWp-dwCzHh-Tascu9-RNRbRf-foLHW5-22dkkHM-9ceFA8-aGGd3a-26X3sqQ-iuTwX9-q52ktA-osn2eb-29oujY-6mXd1c-8E92nc-mPbq55-9GuPU8-26Q1NZG-8UL8PL-pdyFsW-7V8ifD-VZavJ8-2cUdHbU-9WrgjZ-6g7M5K-VMLVrb-cXDd4-bygFJG-C76kP-nMQW54-7MoQqn-qA3fud-c92dBU-tAzTBm-7KqFXc-24VvcW1-djQX9e-5LzjkA-63U4kb-bt1EEY-jLRpKo-dQSWBH-aDbqXc-8KhfnE-2m5ZsF-6ciuiR-qwdbt">"The Humble Mason Jar" by Chiot's Run</a> - 非商业性使用 2.0 通用</div>
</div>
容器”这两个字很少被 Python 技术文章提起。一看到“容器”,大家想到的多是那头蓝色小鲸鱼:*Docker*,但这篇文章和它没有任何关系。本文里的容器,是 Python 中的一个抽象概念,是对**专门用来装其他对象的数据类型**的统称。
容器”这两个字很少被 Python 技术文章提起。一看到“容器”,大家想到的多是那头蓝色小鲸鱼:*Docker*,但这篇文章和它没有任何关系。本文里的容器,是 Python 中的一个抽象概念,是对**专门用来装其他对象的数据类型**的统称。
在 Python 中,有四类最常见的内建容器类型:`列表list`、`元组tuple`、`字典dict`、`集合set`。通过单独或是组合使用它们,可以高效完成很多事情。
在 Python 中,有四类最常见的内建容器类型:`列表list`、`元组tuple`、`字典dict`、`集合set`。通过单独或是组合使用它们,可以高效完成很多事情。
Python 语言自身的内部实现细节也与这些容器类型息息相关。比如 Python 的类实例属性、全局变量 `globals()` 等就都是通过字典类型来存储的。
@ -54,7 +54,7 @@ Python 语言自身的内部实现细节也与这些容器类型息息相关。
Python 是一门高级编程语言,**它所提供的内置容器类型,都是经过高度封装和抽象后的结果**。和“链表”、“红黑树”、“哈希表”这些名字相比,所有 Python 内建类型的名字,都只描述了这个类型的功能特点,其他人完全没法只通过这些名字了解它们的哪怕一丁点内部细节。
这是 Python 编程语言的优势之一。相比 C 语言这类更接近计算机底层的编程语言Python 重新设计并实现了对编程者更友好的内置容器类型,屏蔽掉了内存管理等额外工作为我们提供了更好的开发体验。
这是 Python 编程语言的优势之一。相比 C 语言这类更接近计算机底层的编程语言Python 重新设计并实现了对编程者更友好的内置容器类型,屏蔽掉了内存管理等额外工作为我们提供了更好的开发体验。
但如果这是 Python 语言的优势的话,为什么我们还要费劲去了解容器类型的实现细节呢?答案是:**关注细节可以帮助我们编写出更快的代码。**
@ -309,7 +309,7 @@ user = merge_dict({"name": "piglei"}, {"movies": ["Fight Club"]})
user = {**{"name": "piglei"}, **{"movies": ["Fight Club"]}}
```
除此之外,你还可以在普通赋值语句中使用 `*` 运算符来动态解包可迭代对象。如果你想详细了解相关内容,可以阅读下面推荐的 PEP。
除此之外,你还可以在普通赋值语句中使用 `*` 运算符来动态解包可迭代对象。如果你想详细了解相关内容,可以阅读下面推荐的 PEP。
> Hint推进动态解包场景扩充的两个 PEP
> - [PEP 3132 -- Extended Iterable Unpacking | Python.org](https://www.python.org/dev/peps/pep-3132/)