Python编程:从入门到实践
章节

第 3 章 列表简介

从单个值走向一组值,程序开始处理真实世界的集合

第三章让你第一次接触集合式思维:多个元素如何被放进列表并被统一操作。

章节主张

列表不是一个新语法点,而是程序从处理单个对象走向处理批量对象的关键转折。

中文释读

很多初学者在前两章还会觉得编程像在操练零散命令,到了列表这里,世界 suddenly 变大了。你不再只处理一个名字、一辆车、一个数字,而是开始一次性管理一批对象。索引、增删改、排序和长度,这些动作的背后,其实是数据组织能力。后面几乎所有项目、可视化、API 和 Web 开发,都要依赖这种“集合处理”的感觉。

本章知识路线

  1. 真正的编程很少只处理单个值
  2. 索引和修改能力决定你能否真正操控数据

关键论点

  • 列表让程序能处理批量数据。
  • 索引和切片是理解序列结构的关键。
  • 增删改查是后续所有数据结构操作的基础。

行动清单

  • 练熟访问、追加、插入、删除与排序这些基础动作。
  • 把列表想成有顺序的数据容器,而不是随便堆值。
  • 警惕索引越界和误删数据。

源章节深读

第 3 章 列表简介 在本章和下⼀章中,你将学习列表是什么以及如何使⽤列表元素。列 表让你能够在⼀个地⽅存储成组的信息,其中既可以只包含⼏个元 素,也可以包含数百万个元素。列表是新⼿可直接使⽤的最强⼤的 Python 功能之⼀,它融合了众多重要的编程概念。 3.1 列表是什么 列表( list )由⼀系列按特定顺序排列的元素组成。你不仅可以创建包含字 ⺟表中所有字⺟、数字 0 〜 9 或所有家庭成员姓名的列表,还可以将任何东 ⻄加⼊列表,其中的元素之间可以没有任何关系。列表通常包含多个元 素,因此给列表指定⼀个表⽰复数的名称(如 letters、digits 或 names)是个不错的主意。 在 Python 中,⽤⽅括号([])表⽰列表,⽤逗号分隔其中的元素。

3.1 列表是什么

3.1 列表是什么 列表( list )由⼀系列按特定顺序排列的元素组成。你不仅可以创建包含字 ⺟表中所有字⺟、数字 0 〜 9 或所有家庭成员姓名的列表,还可以将任何东 ⻄加⼊列表,其中的元素之间可以没有任何关系。列表通常包含多个元 素,因此给列表指定⼀个表⽰复数的名称(如 letters、digits 或 names)是个不错的主意。 在 Python 中,⽤⽅括号([])表⽰列表,⽤逗号分隔其中的元素。

这节解决什么:这一节主要解决《第 3 章 列表简介》里一个更具体的子问题:3.1 列表是什么 该怎样落到实际代码或项目动作上。

怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。

提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。

3.2 修改、添加和删除元素

3.2 修改、添加和删除元素 你创建的⼤多数列表将是动态的,这意味着列表创建后,将随着程序的运 ⾏增删元素。例如,你可能创建了⼀个游戏,要求玩家消灭从天⽽降的外 星⼈。为此,可在开始时将⼀些外星⼈存储在列表中,然后每当有外星⼈ 被消灭时,都将其从列表中删除,⽽每次有新的外星⼈出现在屏幕上时, 都将其添加到列表中。在整个游戏运⾏期间,外星⼈列表的⻓度将不断变 化。 3.2.1 修改列表元素 修改列表元素的语法与访问列表元素的语法类似。

这节解决什么:这一节主要解决《第 3 章 列表简介》里一个更具体的子问题:3.2 修改、添加和删除元素 该怎样落到实际代码或项目动作上。

怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。

提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。

3.3 管理列表

3.3 管理列表 在你创建的列表中,元素的排列顺序常常是⽆法预测的,因为你并⾮总能 控制⽤户提供数据的顺序。这虽然在⼤多数情况下是不可避免的,但你经 常需要以特定的顺序呈现信息。你有时候希望保留列表元素最初的排列顺 序,⽽有时候⼜需要调整排列顺序。 Python 提供了很多管理列表的⽅式, 可根据具体情况选⽤。 3.3.1 使⽤ sort() ⽅法对列表进⾏永久排序 Python ⽅法 sort() 让你能够较为轻松地对列表进⾏排序。

这节解决什么:这一节主要解决《第 3 章 列表简介》里一个更具体的子问题:3.3 管理列表 该怎样落到实际代码或项目动作上。

怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。

提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。

3.4 使用列表时避免索引错误

3.4 使⽤列表时避免索引错误 在刚开始使⽤列表时,很容易犯⼀种错误。

这节解决什么:这一节主要解决《第 3 章 列表简介》里一个更具体的子问题:3.4 使用列表时避免索引错误 该怎样落到实际代码或项目动作上。

怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。

提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。

3.5 小结

3.5 ⼩结 在本章中,你⾸先学习了列表是什么,以及如何使⽤其中的元素。然后学 习了如何定义列表,如何增删元素,以及如何对列表进⾏永久排序和临时 排序。最后,你还学习了如何获得列表的⻓度,以及如何在使⽤列表时避 免索引错误。 在第 4 章中,你将学习如何以更⾼效的⽅式处理列表元素。只⽤寥寥⼏⾏ 代码来遍历列表元素,你就能⾼效地处理它们,即便列表包含数千乃⾄数 百万个元素。

这节解决什么:这一节主要解决《第 3 章 列表简介》里一个更具体的子问题:3.5 小结 该怎样落到实际代码或项目动作上。

怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。

提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。

辨析题

为什么列表会成为初学者第一次真正接触‘数据结构’的地方?

本章图版学习路径

真正的编程很少只处理单个值

索引和修改能力决定你能否真正操控数据