查看全课大纲(第 12 / 51 节)
- 1.Python 是什么?为什么值得学?
- 2.如何为 Python 编程准备一个“全家桶”环境?
- 3.Python 有哪几种执行方法?
- 4.行与缩进到底有什么用?
- 5.注释有什么用,怎么写?
- 6.变量:如何给数据起个好名字?
- 7.运算符的优先级和常见坑点是什么?
- 8.Python 中,数字和布尔值究竟有哪几种?
- 9.输入函数 `input()` 和文件读取 `open()` 怎么用?
- 10.如何将程序的结果展示给用户或保存下来?
- 11.CSV 文件怎么读怎么写才方便?
- 12.列表是什么,如何创建和访问它?
- 13.列表的修改操作,有哪些方法?
- 14.列表切片为什么能取到部分元素?排序和查找又该怎么用?
- 15.判断语句:如何让程序根据条件做不同的事?
- 16.for 循环如何遍历序列中的元素?
- 17.while 循环什么时候才会停?
- 18.while 循环的结束条件,你写对了吗?
- 19.循环中途想提前结束,怎么办?
- 20.`break` 和 `continue` 到底有什么区别?
- 21.列表推导式如何让代码更简洁高效?
- 22.字符串怎么定义、拼接和操作?
- 23.元组:为什么定义单个元素时要加逗号?
- 24.集合(set)怎么用?如何快速去重和做集合运算?
- 25.字典是什么,为什么比列表更方便?
- 26.字典的增删改查与遍历,如何避免 KeyError?
- 27.函数里的变量,为什么有的能用有的不能用?
- 28.在函数内部修改全局变量,为什么有时不生效?
- 29.函数里能修改全局变量吗?返回值怎么用?
- 30.匿名函数:如何用 lambda 快速定义简单函数?
- 31.面向对象编程是什么,为什么需要它?
- 32.类中的方法和属性到底怎么定义和使用?
- 33.如何控制对对象内部属性和方法的访问?
- 34.异常发生时,程序会怎样继续执行?
- 35.如何组织代码:包和模块
- 36.`if __name__ == '__main__'` 到底有什么用?
- 37.如何用 IDE 的 Debug 功能排查程序错误?
- 38.Matplotlib 绘图的第一步该做什么?
- 39.Figure 是什么,如何设置图形尺寸?
- 40.如何自定义 Matplotlib 的坐标轴?
- 41.如何为图表添加图例,让不同曲线一目了然?
- 42.饼图怎么画才能直观展示数据占比?
- 43.如何用 Matplotlib 绘制散点图?
- 44.柱状图怎么画?
- 45.如何使用 Matplotlib 绘制等高线图?
- 46.如何在 Matplotlib 中绘制子图?
- 47.zip 函数如何把多个列表“打包”在一起?
- 48.如何给可迭代对象加上索引?
- 49.random 模块如何生成随机数?
- 50.math 模块怎么用?
- 51.Counter 如何快速统计元素出现次数?
列表是什么,如何创建和访问它?
约 9 分钟
小象实战讲义 · Python 编程从入门到实践
列表是 Python 中最基础、最常用的数据结构之一。学完本节,你将能理解列表的概念,掌握如何创建列表、访问和修改其中的元素,并能使用循环来遍历列表。这是学习后续更复杂数据结构(如字典、元组)和控制流(如for循环)的重要基础。
💡 核心导读
- 列表是什么:一个可以存储多个元素(类型可不同)的有序集合。
- 如何创建:使用方括号
[]将元素括起来,元素间用逗号分隔。 - 如何访问:通过下标(索引) 访问,下标从
0开始。 - 如何修改:通过下标直接赋值,即可修改列表中指定位置的元素。
- 如何遍历:使用
for循环可以逐个访问列表中的每个元素。
列表的定义与创建
列表(List)是 Python 中用于存储一系列数据的有序集合。它的核心特点是:
- 可以容纳多个元素。
- 元素可以是任意类型,例如整数、字符串,甚至其他列表。
- 元素之间保持顺序,即你放入元素的顺序就是它们存储的顺序。
创建列表的语法非常简单:使用一对方括号 [],将元素放入其中,元素之间用逗号 , 分隔。
# 创建一个包含三个字符串的列表
name_list = ["zhangsan", "lisi", "wangwu"]
print("字符串列表:", name_list)
# 列表中的元素类型可以不同,这在 Python 中是允许的
mixed_list = [100, "hello", 3.14]
print("混合类型列表:", mixed_list)字符串列表: ['zhangsan', 'lisi', 'wangwu']
混合类型列表: [100, 'hello', 3.14]列表的访问与修改
列表中的每个元素都有一个唯一的编号,称为下标或索引。这个编号从 0 开始,依次递增。
通过下标访问元素
你可以通过 列表名[下标] 的形式来获取列表中对应位置的元素。
name_list = ["zhangsan", "lisi", "wangwu"]
# 访问第一个元素(下标为0)
first_person = name_list[0]
print("第一个元素是:", first_person)
# 访问第二个元素(下标为1)
second_person = name_list[1]
print("第二个元素是:", second_person)
# 列表是可变类型:通过下标赋值即可修改元素
print("修改前的列表:", name_list)
name_list[0] = "xiaobai"
print("修改后的列表:", name_list)第一个元素是: zhangsan
第二个元素是: lisi
修改前的列表: ['zhangsan', 'lisi', 'wangwu']
修改后的列表: ['xiaobai', 'lisi', 'wangwu']遍历列表
当我们需要处理列表中的每一个元素时,可以使用 for 循环进行遍历。
方法一:直接遍历元素
这是最常用的方式,for 循环会依次将列表中的每个元素赋值给一个临时变量。
name_list = ["zhangsan", "lisi", "wangwu"]
print("直接遍历元素:")
for item in name_list:
print(item)
# 方法二:结合 range() 和 len() 通过下标遍历
# len(列表) 返回元素个数;range(n) 生成 0 到 n-1 的整数序列
print("通过下标遍历:")
for i in range(len(name_list)):
print("下标 {} 对应的元素是:{}".format(i, name_list[i]))直接遍历元素:
zhangsan
lisi
wangwu
通过下标遍历:
下标 0 对应的元素是:zhangsan
下标 1 对应的元素是:lisi
下标 2 对应的元素是:wangwu嵌套列表
列表的元素本身也可以是列表,这就形成了嵌套列表,或称“列表的列表”。这种结构常用于表示二维数据,比如多人的多项成绩。
# 一个嵌套列表,外层列表包含3个元素,每个元素又是一个包含3个元素的列表
# 分别表示:姓名、科目1成绩、科目2成绩
scores = [
["zhangsan", 92, 82],
["lisi", 82, 78],
["wangwu", 83, 89]
]
print("嵌套列表:", scores)
print("遍历嵌套列表(打印内层列表):")
for person_scores in scores: # 外层循环,遍历每个人
print(person_scores)
print("遍历嵌套列表(打印每个具体值):")
for person_scores in scores: # 外层循环,遍历每个人
for score in person_scores: # 内层循环,遍历每个人的成绩列表
print(score) # 每个值单独打印一行嵌套列表: [['zhangsan', 92, 82], ['lisi', 82, 78], ['wangwu', 83, 89]]
遍历嵌套列表(打印内层列表):
['zhangsan', 92, 82]
['lisi', 82, 78]
['wangwu', 83, 89]
遍历嵌套列表(打印每个具体值):
zhangsan
92
82
lisi
82
78
wangwu
83
89📝 动手练一练
- 创建一个列表
fruits,包含"apple","banana","cherry"三个元素。然后编写代码,将列表中的"banana"修改为"blueberry",并打印修改后的整个列表。 - 给定一个嵌套列表
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]],请使用双重循环打印出其中的每一个数字(每个数字单独一行)。
👉 点击查看参考答案
练习1:修改列表元素 思路:先创建列表,然后通过下标找到 "banana"(它是第二个元素,下标为1),最后赋值修改。
练习2:遍历嵌套列表 思路:外层循环遍历 matrix 中的每一个子列表,内层循环遍历子列表中的每一个数字并打印。
fruits = ["apple", "banana", "cherry"]
print("修改前:", fruits)
fruits[1] = "blueberry"
print("修改后:", fruits)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in matrix: # row 依次为 [1,2,3], [4,5,6], [7,8,9]
for number in row: # 遍历当前行中的每个数字
print(number)修改前: ['apple', 'banana', 'cherry']
修改后: ['apple', 'blueberry', 'cherry']
1
2
3
4
5
6
7
8
9常见错误
| 错误写法 | 现象或报错 | 原因 | 正确写法 |
|---|---|---|---|
print(name_list[3])name_list = ["a", "b", "c"] | IndexError: list index out of range | 列表只有3个元素,下标范围是0-2。访问下标3(第4个元素)超出了列表的边界。 | 确保下标在 0 到 len(列表)-1 的范围内。 |
name_list = [zhangsan, lisi] | NameError: name 'zhangsan' is not defined | 创建列表时,如果元素是字符串,必须用引号(单引号或双引号)括起来,否则Python会将其视为变量名。 | name_list = ["zhangsan", "lisi"] |
name_list[0] = "new"name_list = ("a", "b") | TypeError: 'tuple' object does not support item assignment | 这里 name_list 被错误地定义为了元组 ( ),元组是不可变的,不能修改其中的元素。 | 使用方括号 [ ] 定义列表:name_list = ["a", "b"] |
小结
- 列表是一个有序、可变的集合,用方括号
[]定义,元素间用逗号分隔。 - 列表元素可以是任意类型,且类型可以混合。
- 通过下标(索引) 访问和修改列表元素,下标从
0开始。 - 使用
for 元素 in 列表:循环可以直接遍历列表中的每一个元素。 - 使用
for i in range(len(列表)):循环可以通过下标遍历列表,便于同时获取元素和其位置。 - 列表的元素可以是另一个列表,形成嵌套列表,遍历嵌套列表需要使用多重循环。
📋 行动清单
- 在代码编辑器中,亲手输入本节的所有示例代码并运行,观察输出结果。
- 尝试创建一个包含你本周计划的列表(比如
["学习", "运动", "阅读"]),并练习修改其中一项计划。 - 将“嵌套列表”部分的成绩示例,改成存储你和你两位朋友的信息(如
[姓名, 年龄, 城市]),并编写代码打印出所有人的城市。
—— 小象教研组
配套资料 · 直接下载
课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。
- 下载第1章代码包:列表-定义及访问_样例代码(含1 个 Notebook)ZIP · 540B