【Python 学习第 55 天】列表基础
学习日期:2026-11-11
知识点:列表基础
难度:0.85
一、今日知识点
今天学习的是 列表基础。
列表是 Python 中最常用的可变序列,用方括号 \[\] 定义,元素之间用逗号分隔。列表可以包含任意类型的元素,并且支持索引、切片、修改、添加和删除等操作。列表的索引从 0 开始,负数索引表示从末尾倒数。列表是可变对象,这意味着你可以直接修改其中的元素。例如:
python
fruits = ['apple', 'banana', 'cherry']
print(fruits[0]) #
## 二、详细解析
### 概念说明
列表(list)是 Python 中最常用的**可变序列**,你可以把它想象成一排带编号的储物格:每个格子放一个元素,格子有固定顺序,而且你可以随时换掉、增加或拿走格子里的东西。用方括号 `[]` 定义,元素之间用逗号分隔。
它之所以重要,是因为绝大多数真实数据都是"一组有序的值"------一列成绩、一批用户名、一串坐标。列表让你用一个变量管理整组数据,并支持按下标取值、按区间切片、原地修改等操作,是后续学习循环、函数、数据处理的基础。
### 语法与用法
- **定义**:`lst = [元素1, 元素2, ...]`,元素可以是任意类型,甚至混合类型。
- **索引**:从 `0` 开始;负数表示从末尾倒数,`-1` 是最后一个元素。
- **切片**:`lst[start:stop:step]`,含 `start` 不含 `stop`;省略则取到头/到尾;`step` 为负表示反向。
- **修改**:`lst[i] = 新值` 直接替换;`lst[a:b] = 可迭代对象` 可以**替换一段区间**,长度不必相等。
- **增删**:`append`、`insert`、`extend` 添加;`del lst[i]`、`remove`、`pop` 删除。
- **可变性**:列表是可变对象,原地修改不会创建新对象。
### 示例代码
```python
# 示例 1:索引、切片与反向
lst = [1, 2, 3, 4, 5]
print(lst[-2]) # 4,倒数第二个
print(lst[1:3]) # [2, 3],含头不含尾
print(lst[::-1]) # [5, 4, 3, 2, 1],步长为 -1 即反转
# 示例 2:切片赋值(长度可变)
nums = [10, 20, 30, 40, 50]
nums[1:4] = [100, 200] # 用 2 个元素替换下标 1~3 的 3 个元素
print(nums) # [10, 100, 200, 50]
第二个例子说明:切片赋值不是"逐个对应替换",而是先删掉被切中的那段,再把右侧元素插进去,所以列表长度会变化。
常见坑
- 切片越界不报错,索引越界报错 。
lst[10]会抛IndexError,但lst[10:20]只返回[],容易掩盖逻辑错误。 - 切片赋值右侧必须是可迭代对象 。写
nums[1:4] = 100会报TypeError,应写成nums[1:4] = [100]。 - 把切片当成"副本"却忘了它是浅拷贝 。
b = a[:]只复制一层,若元素本身是列表,改b[0][0]仍会影响a。
小结
列表是"有序 + 可变"的容器:索引用 [] 取单个元素,切片用 [a:b:c] 取一段,切片赋值还能改变长度------记住"含头不含尾"和"切片越界不报错"这两点,就能避开大多数初学陷阱。
三、今日练习
第 1 题 ✅
**题目:**以下代码的输出是什么?
nums = 10, 20, 30, 40, 50
nums1:4 = 100, 200
print(nums)
- 我的答案:
A
第 2 题 ❌
**题目:**填写下面代码的输出结果:
lst = 1, 2, 3, 4, 5
print(lst-2)
print(lst1:3)
print(lst::-1)
- 我的答案:
4 [2,3 [1,2,3,4] - 正确答案:
4 [2, 3] [5, 4, 3, 2, 1]
四、今日总结
- 题目数量:2
- 答对:1
- 正确率:50%
本文由个人 Python 学习智能体自动生成