【Python 学习第 55 天】列表基础

【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]

第二个例子说明:切片赋值不是"逐个对应替换",而是先删掉被切中的那段,再把右侧元素插进去,所以列表长度会变化。

常见坑

  1. 切片越界不报错,索引越界报错 。lst[10] 会抛 IndexError,但 lst[10:20] 只返回 [],容易掩盖逻辑错误。
  2. 切片赋值右侧必须是可迭代对象 。写 nums[1:4] = 100 会报 TypeError,应写成 nums[1:4] = [100]。
  3. 把切片当成"副本"却忘了它是浅拷贝 。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 学习智能体自动生成

相关推荐
专注仿真18 分钟前
知识问答模型用到的算法集详解及代码实例
python·算法·代码·大模型训练·控制算法
jyOverQ43 分钟前
我写了一个 CSDN Markdown 图片助手:告别本地图片逐张上传
python·工具·csdn
刘马想放假4 小时前
CANviz 使用指南|Linux 安装、DBC 解码、实时曲线与 J1939 实战
linux·python·websocket
2601_967987375 小时前
python判断变量名不要调用任何函数实现
python·函数·语法·判断·变量名
卷无止境5 小时前
SALib敏感性分析的python库学习笔记
后端·python
duansamve6 小时前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
特立独行的猫A7 小时前
少 3 个环节、少 1 次 ABI、少 3500 行代码:cj-tauri 与 Ionic/Capacitor 的鸿蒙桥接机制对比
java·后端·python
特立独行的猫A7 小时前
cj-tauri vs Rust/Tauri 同款播放器实测:编译 21 秒 vs 11 分钟,磁盘 12 MB vs 1.2 GB
java·后端·python
duansamve8 小时前
详解Flask中Session和Cookie
python·flask