首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第7章 编程术语
7.1 编程术语定义
7.1.1 作为语言的Python和作为解释器的Python
7.1.2 垃圾回收
7.1.3 字面量
7.1.4 关键字
7.1.5 对象、值、实例和身份
7.1.6 项
7.1.7 可变和不可变
7.1.8 索引、键和哈希值
7.1.9 容器、序列、映射和集合类型
7.1.10 特殊方法
7.1.11 模块和包
7.1.12 可调用对象和头等对象
7.2 经常被混淆的术语
7.2.1 语句和表达式
7.2.2 块、子句和主体
7.2.3 变量和特性
7.2.4 函数和方法
7.2.5 可迭代对象和迭代器
7.2.6 语法错误、运行时错误和语义错误
7.2.7 形参和实参
7.2.8 显式类型转换和隐式类型转换
7.2.9 属性和特性
7.2.10 字节码和机器码
7.2.11 脚本和程序,以及脚本语言和编程语言
7.2.12 库、框架、SDK、引擎、API
第8章 常见的Python陷阱
8.1 循环列表的同时不要增删其中的元素
8.2 复制可变值时务必使用copy.copy()和copy.deepcopy()
8.3 不要用可变值作为默认参数
8.4 不要通过字符串连接创建字符串
8.5 不要指望sort()按照字母顺序排序
8.6 不要假设浮点数是完全准确的
8.7 不要使用链式!=运算符
8.8 不要忘记在仅有一项的元组中添加逗号
第9章 Python的奇特难懂之处
9.1 为什么256 是256,而257 不是257
9.2 字符串驻留
9.3 假的Python 增量运算符和减量运算符
9.4 传递空列表给all()
9.5 布尔值是整数值
9.6 链式使用多种运算符
9.7 Python 的反重力特性
当前位置:
首页>>
技术小册>>
Python编程轻松进阶(三)
小册名称:Python编程轻松进阶(三)
### 7.1.9 容器、序列、映射和集合类型 在Python的广阔世界中,数据结构是构建程序大厦的基石。理解并熟练运用不同类型的容器是提升编程能力的重要一步。Python提供了丰富的内置容器类型,其中最基本且常用的包括序列(如列表、元组)、映射(字典)和集合(集合与有序集合)。这些容器类型各有特色,适用于不同的场景,掌握它们将极大地丰富你的编程工具箱。 #### 7.1.9.1 容器类型概述 容器是Python中用于存储多个项目(如数字、字符串或其他容器)的数据结构。容器类型的主要特点是它们可以包含多个元素,并且这些元素可以通过某种方式进行访问。Python中的容器类型主要分为三大类:序列、映射和集合。 - **序列**:序列是一种有序的数据集合,可以包含不同类型的元素。序列中的每个元素都有一个位置,可以通过索引(位置编号)进行访问。Python中的序列类型包括列表(list)、元组(tuple)、字符串(str)等。 - **映射**:映射是一种无序的键值对集合,每个键都映射到一个唯一的值。映射中的元素通过键来访问,而不是通过位置。Python中的映射类型主要是字典(dict)。 - **集合**:集合是一个无序的、不包含重复元素的数据集合。集合主要用于数学上的集合操作,如并集、交集、差集等。Python中的集合类型有集合(set)和有序集合(OrderedDict在Python 3.7+的字典可视为有序集合的替代品,或使用collections.OrderedDict)。 #### 7.1.9.2 序列类型 ##### 列表(List) 列表是Python中最常用的序列类型,它是一个可变的容器,支持存储任意类型的数据项。列表的创建非常简单,使用方括号`[]`包围元素,元素之间用逗号`,`分隔。 ```python my_list = [1, 'a', 3.14, [1, 2, 3]] ``` 列表支持多种操作,包括添加、删除、索引、切片等。 - **添加元素**:使用`append()`方法在列表末尾添加元素,使用`insert(index, value)`在指定位置插入元素。 - **删除元素**:使用`remove(value)`删除第一个匹配的元素,或使用`pop([index])`删除并返回指定位置的元素(默认为最后一个元素)。 - **索引与切片**:通过索引访问元素(如`my_list[0]`),通过切片访问子列表(如`my_list[1:3]`)。 ##### 元组(Tuple) 元组与列表相似,但它是不可变的。一旦创建了元组,就不能更改其元素。元组使用圆括号`()`包围元素(虽然单个元素或空元组需要额外的逗号以区分)。 ```python my_tuple = (1, 'a', 3.14) ``` 元组常用于存储不应该被改变的数据,如函数的返回值或记录多个值时的数据结构。 #### 7.1.9.3 映射类型:字典(Dict) 字典是Python中唯一的映射类型,它以键值对的形式存储数据。字典的键必须是不可变类型(如字符串、数字或元组),而值可以是任意类型。 ```python my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'} ``` 字典支持通过键来访问值,支持添加、删除键值对,以及检查键是否存在等操作。 - **访问值**:通过键访问值(如`my_dict['name']`)。 - **添加/修改键值对**:通过赋值操作添加或修改键值对(如`my_dict['job'] = 'Engineer'`)。 - **删除键值对**:使用`del`语句或`pop()`方法删除键值对(如`del my_dict['age']`或`my_dict.pop('city')`)。 #### 7.1.9.4 集合类型 ##### 集合(Set) 集合是一个无序的、不包含重复元素的数据集合。它主要用于数学上的集合操作,如并集、交集、差集等。 ```python my_set = {1, 2, 3, 4} ``` 集合支持多种操作,如并集(`|`)、交集(`&`)、差集(`-`)、对称差集(`^`)等。 ##### 有序集合(使用`OrderedDict`或Python 3.7+的字典) 虽然Python标准库中没有直接称为“有序集合”的类型,但从Python 3.7开始,字典的插入顺序被保留,因此可以作为有序集合的替代品。另外,`collections.OrderedDict`也提供了有序字典的功能,适用于需要保持元素插入顺序的场景。 ```python from collections import OrderedDict my_ordered_dict = OrderedDict() my_ordered_dict['a'] = 1 my_ordered_dict['b'] = 2 # 遍历将保持插入顺序 for key, value in my_ordered_dict.items(): print(key, value) ``` #### 7.1.9.5 容器类型的选择与应用 在实际编程中,选择适当的容器类型对于提高代码效率、可读性和可维护性至关重要。以下是一些选择容器类型的指导原则: - **如果你需要存储一系列有序的元素,并且可能会频繁地添加、删除或修改元素,那么列表(List)是最佳选择。** - **如果你需要存储一系列元素,但这些元素在创建后不应被修改,那么元组(Tuple)是更好的选择。** - **如果你需要存储键值对,并且需要通过键快速访问值,那么字典(Dict)是不可或缺的。** - **如果你需要执行数学上的集合操作,如并集、交集等,那么集合(Set)或有序集合(OrderedDict或Python 3.7+的字典)将是你的首选。** 理解并熟练掌握这些容器类型,将使你能够编写出更加高效、灵活和易于维护的Python代码。在本书的后续章节中,我们将进一步探索这些容器类型的高级用法和最佳实践,帮助你更深入地理解Python的数据结构。
上一篇:
7.1.8 索引、键和哈希值
下一篇:
7.1.10 特殊方法
该分类下的相关小册推荐:
Python3网络爬虫开发实战(下)
Python合辑1-Python语言基础
Python3网络爬虫开发实战(上)
Python合辑13-面向对象编程案例(上)
Python数据分析与挖掘实战(上)
Python与办公-玩转Excel
Python合辑11-闭包函数
Python合辑9-判断和循环
Python与办公-玩转PDF
Python编程轻松进阶(四)
Python爬虫入门与实战开发(下)
Python合辑12-面向对象