第 18 课 · 阶段三 · 数据结构

列表 List

列表是 Python 最常用的“容器”,能装任意多个数据。这一课从创建、增删改查到切片排序,把列表彻底学透。

第 18 课阶段三 · 数据结构难度:入门建议时长:40 分钟关键词:增删改查 · 切片 · 排序 · 方法

🎯 学完本课你将掌握

  • 创建列表并访问、修改元素
  • 掌握列表的增、删、改、查方法
  • 会切片、排序与复制列表
  • 会用 in 判断元素是否存在

一、创建列表

创建列表.py
1fruits = ["苹果", "香蕉", "橘子"]
2nums = [1, 2, 3, 4, 5]
3mixed = [1, "你好", 3.14, True] # 可混合类型
4empty = [] # 空列表
5print(fruits, nums, mixed, empty)

二、访问与修改

访问修改.py
1fruits = ["苹果", "香蕉", "橘子"]
2print(fruits[0]) # 苹果 索引从0开始
3print(fruits[-1]) # 橘子 负数从右数
4fruits[1] = "西瓜" # 修改元素
5print(fruits) # ['苹果', '西瓜', '橘子']

三、增加元素

方法作用示例
append(x)末尾追加lst.append(4)
insert(i, x)在指定位置插入lst.insert(0, '头部')
extend(列表)合并另一个列表lst.extend([5,6])
增加元素.py
1lst = [1, 2, 3]
2lst.append(4) # [1,2,3,4]
3lst.insert(0, 0) # [0,1,2,3,4]
4lst.extend([5, 6]) # [0,1,2,3,4,5,6]
5print(lst)

四、删除元素

方法作用示例
remove(x)删除第一个匹配值lst.remove(2)
pop(i)弹出并返回下标i的元素lst.pop() 删除末尾
del lst[i]按下标删除del lst[0]
clear()清空所有lst.clear()
删除元素.py
1lst = [10, 20, 30, 20, 40]
2lst.remove(20) # 删除第一个20 → [10,30,20,40]
3last = lst.pop() # 弹出40 → [10,30,20]
4first = lst.pop(0) # 弹出10 → [30,20]
5del lst[0] # 删除下标0 → [20]
6print(last, first, lst)

五、切片与复制

切片复制.py
1nums = [0, 1, 2, 3, 4, 5]
2print(nums[1:4]) # [1,2,3]
3print(nums[::-1]) # [5,4,3,2,1,0] 反转
4b = nums[:] # 完整复制(新列表)
5b[0] = 99
6print(nums, b) # 原列表不受影响
⚠️ 注意
直接 c = nums 是引用,改 c 会连 nums 一起改;要独立副本用 nums[:] 或 nums.copy()。

六、排序与统计

排序统计.py
1scores = [88, 55, 92, 70, 61]
2scores.sort() # 原地升序排序
3print(scores) # [55,61,70,88,92]
4scores.sort(reverse=True) # 降序
5print(scores)
6print(max(scores)) # 最大值
7print(min(scores)) # 最小值
8print(sum(scores)) # 总和
9print(len(scores)) # 元素个数
10print(70 in scores) # True 判断是否存在

七、遍历列表

遍历列表.py
1names = ["张三", "李四", "王五"]
2for n in names:
3 print(n)
4
5for i, n in enumerate(names):
6 print(i, n)

八、常见错误与解决

常见错误与解决

错误现象原因 / 解决方法
IndexError: list index out of range访问了不存在的下标,先确认 len(lst)。
ValueError: list.remove(x): x not in listremove 的值不存在,先判断 if x in lst 再删。
sort 后列表变了但想保留原样用 sorted(lst) 返回新列表,lst.sort() 是原地修改。
✍️ 小练习
创建学生分数列表,完成:追加两个分数、删除一个最低分、排序后打印前 3 名、计算平均分。
📌 本节小结
列表是“可变的有序容器”:append/insert/extend 增,remove/pop/del 删,索引切片访问,sort/sorted 排序,in 判断存在。它是数据结构的重中之重,务必多练。