📝

初识列表

田浩然制作🎭

学会用Python的"清单"管理数据!

🎯
列表是什么
装多个东西的盒子
增加元素
append/insert/extend
删除元素
remove/pop/del
🔍
查找元素
in/index/for循环

🤔 为什么需要列表?

❌ 以前的问题

一个变量只能装一个东西:

food1 = "牛奶"  
food2 = "面包"  
food3 = "苹果"  
food4 = "香蕉"  
# 100个东西要定义100个变量?😱
😭

太麻烦了!

✅ 现在的解决方法

用列表装所有东西:

shopping_list = ["牛奶", "面包", "苹果", "香蕉"]  
print(shopping_list)  

# 输出:['牛奶', '面包', '苹果', '香蕉']
🎉

一个变量搞定!

🎭 光头强的购物清单

🐻

熊大说:

"光头强,去给我买牛奶、面包、苹果、香蕉!"

➡️
🧑‍🦲

光头强想:

"得用Python的列表记下来,不然会忘记!"

📚 什么是列表?

列表就像一个有很多格子的盒子!📦

🥛
牛奶
🍞
面包
🍎
苹果
🍌
香蕉
⬇️
shopping_list = ['牛奶', '面包', '苹果', '香蕉']  
print("要购买的东西有:")  
print(shopping_list)

输出结果:

要购买的东西有:

['牛奶', '面包', '苹果', '香蕉']

✨ 列表的特点

1️⃣

用方括号[]包起来

就像一个盒子的边框

2️⃣

用逗号,分隔元素

每个格子之间用逗号隔开

3️⃣

可以装任何类型

数字、文字、甚至列表都可以

🎨 列表的基本规则

列表可以为空

empty_list = []  # 空列表

可以存不同类型

mixed = ["文字", 123, 3.14, True]

列表里还能装列表

nested = ["爸爸", ["妈妈", "爷爷"]]

🔢 索引 - 列表的门牌号

列表中的每个元素都有自己的"门牌号"!

0
🥛 牛奶
1
🍞 面包
2
🍎 苹果
3
🍌 香蕉

⚠️ 重要提醒

索引从0开始,不是从1开始!

第一个元素是0号,第二个是1号...

💡 记忆技巧

就像楼房的楼层:

一楼叫0层,二楼叫1层...

shopping_list = ['牛奶', '面包', '苹果', '香蕉']  

# 访问列表中的元素  
print(shopping_list[0])  # 输出:牛奶  
print(shopping_list[2])  # 输出:苹果

➕ 增加元素 - 让列表变长

🐻

"光头强,再给我买点糖果回来!"

⬇️
🧑‍🦲

"怎么把糖果加到购物清单里呢?"

1️⃣

append() - 加到最后面

📖 用法说明

作用:在列表的最后面添加一个元素

语法:

列表名.append(新元素)

💡 记忆技巧

append = 追加,就像排队排到最后!

💻 代码示例

shopping_list = ['牛奶', '面包', '苹果', '香蕉']  
shopping_list.append('糖果')  
print(shopping_list)

输出:

['牛奶', '面包', '苹果', '香蕉', '糖果']

👆 看!糖果被加到最后了!

🎯 变化过程动画

牛奶 面包 苹果 香蕉
糖果
牛奶 面包 苹果 香蕉 糖果
2️⃣

insert() - 插入到指定位置

📖 用法说明

作用:在列表的指定位置插入元素

语法:

列表名.insert(位置索引, 新元素)

💡 记忆技巧

insert = 插入,就像插队一样!

💻 代码示例

想在"苹果"前面加"巧克力"

苹果的索引是2,所以在2号位置插入!

shopping_list = ['牛奶', '面包', '苹果', '香蕉']  
shopping_list.insert(2, '巧克力')  
print(shopping_list)

输出:

['牛奶', '面包', '巧克力', '苹果', '香蕉']

🎯 插入过程演示

原列表:
索引0
牛奶
索引1
面包
索引2
苹果
索引3
香蕉
插入后:
索引0
牛奶
索引1
面包
索引2
巧克力
索引3
苹果
索引4
香蕉
3️⃣

extend() - 一次加多个

📖 用法说明

作用:一次添加多个元素到列表末尾

语法:

列表名.extend([元素1, 元素2, 元素3])

💡 记忆技巧

extend = 扩展,一次加好多个!

💻 代码示例

🐻

"再买薯条、可乐、果汁!"

shopping_list = ['牛奶', '面包', '苹果', '香蕉']  
shopping_list.extend(['薯条', '可乐', '果汁'])  
print(shopping_list)

输出:

['牛奶', '面包', '苹果', '香蕉', '薯条', '可乐', '果汁']

📊 三种添加方法对比

方法 作用 添加位置 添加数量 示例
append() 追加到末尾 最后面 1个 list.append('糖果')
insert() 插入到指定位置 任意位置 1个 list.insert(2, '巧克力')
extend() 扩展列表 最后面 多个 list.extend(['A', 'B'])

❌ 删除元素 - 让列表变短

🧑‍🦲

"可乐不健康,不买了!怎么从清单里删掉?"

1️⃣

remove() - 删除指定元素

📖 用法说明

作用:删除列表中指定的元素

语法:

列表名.remove(要删除的元素)

⚠️ 注意事项

如果有多个相同元素,只删除第一个

💻 代码示例

shopping_list = ['牛奶', '面包', '苹果',   
                  '香蕉', '薯条', '可乐', '果汁']  

# 删除可乐  
shopping_list.remove('可乐')  
print(shopping_list)

输出:

['牛奶', '面包', '苹果', '香蕉', '薯条', '果汁']

👆 可乐不见了!

🤔 如果有两个可乐会怎样?

list = ['牛奶', '可乐', '面包', '可乐', '果汁']  
list.remove('可乐')  
print(list)  
# 输出:['牛奶', '面包', '可乐', '果汁']  ← 只删了第一个!
2️⃣

pop() - 删除最后一个

📖 用法说明

作用:删除列表最后一个元素,并返回它

语法:

删除的值 = 列表名.pop()

💡 特殊用法

pop(索引) 可以删除指定位置的元素!

💻 代码示例

shopping_list = ['牛奶', '面包', '苹果',   
                  '香蕉', '薯条', '可乐', '果汁']  

# 删除最后一个  
removed = shopping_list.pop()  
print("删除的是:" + removed)  
print(shopping_list)

输出:

删除的是:果汁

['牛奶', '面包', '苹果', '香蕉', '薯条', '可乐']

🎯 高级用法:pop(索引)

shopping_list.pop(5)  # 删除索引为5的元素(可乐)  
# 输出:['牛奶', '面包', '苹果', '香蕉', '薯条', '果汁']
3️⃣

del - 按位置删除

📖 用法说明

作用:删除指定位置的元素

语法:

del 列表名[索引]

💡 高级技巧

del还可以删除一段范围!

del list[2:5] 删除索引2到4的元素

💻 代码示例

shopping_list = ['牛奶', '面包', '苹果',   
                  '香蕉', '薯条', '可乐', '果汁']  

# 删除索引为5的元素(可乐)  
del shopping_list[5]  
print(shopping_list)

输出:

['牛奶', '面包', '苹果', '香蕉', '薯条', '果汁']

🚀 试试这个:

del shopping_list[2:5]  # 删除索引2到4

📊 三种删除方法对比

方法 删除方式 返回值 示例
remove() 按元素值删除 无返回值 list.remove('可乐')
pop() 删除最后一个(或指定位置) 返回被删除的元素 item = list.pop()
del 按索引删除 无返回值 del list[2]

🤔 如何选择?

知道元素值

→ 用 remove()

删除最后一个

→ 用 pop()

知道位置

→ 用 del

🔍 查找元素 - 在列表里找东西

🧑‍🦲

"清单上有苹果吗?在第几个位置?"

1️⃣

in - 判断元素是否存在

📖 用法说明

作用:检查某个元素是否在列表中

语法:

元素 in 列表名

💡 返回结果

在列表中返回 True

不在列表中返回 False

💻 代码示例

shopping_list = ['牛奶', '面包', '苹果', '香蕉']  

# 检查是否有苹果  
if '苹果' in shopping_list:  
    print("有苹果!")  
else:  
    print("没有苹果!")  

# 检查是否有西瓜  
if '西瓜' in shopping_list:  
    print("有西瓜!")  
else:  
    print("没有西瓜!")

输出:

有苹果!

没有西瓜!

2️⃣

index() - 查找元素位置

📖 用法说明

作用:查找元素在列表中的索引位置

语法:

列表名.index(要找的元素)

⚠️ 注意

如果元素不存在,会报错!

所以最好先用 in 判断是否存在

💻 代码示例

shopping_list = ['牛奶', '面包', '苹果', '香蕉']  

# 查找苹果的位置  
position = shopping_list.index('苹果')  
print(f"苹果在索引{position}的位置")  

# 安全的查找方式  
if '香蕉' in shopping_list:  
    pos = shopping_list.index('香蕉')  
    print(f"香蕉在索引{pos}的位置")  
else:  
    print("没有香蕉")

输出:

苹果在索引2的位置

香蕉在索引3的位置

3️⃣

count() - 统计元素出现次数

📖 用法说明

作用:统计某个元素在列表中出现的次数

语法:

列表名.count(要统计的元素)

💻 代码示例

shopping_list = ['牛奶', '面包', '苹果',   
                  '香蕉', '苹果', '苹果']  

# 统计苹果出现几次  
num = shopping_list.count('苹果')  
print(f"苹果出现了{num}次")

输出:

苹果出现了3次

🔄 遍历列表 - 逐个查看元素

用for循环遍历列表

遍历 = 从头到尾逐个访问列表中的每一个元素

👉 🥛 → 🍞 → 🍎 → 🍌 👈

📖 基本语法

for 元素 in 列表名:  
    print(元素)

💡 理解

元素会依次变成列表中的每一项

💻 完整示例

shopping_list = ['牛奶', '面包', '苹果', '香蕉']  

print("要购买的东西有:")  
for item in shopping_list:  
    print(f"- {item}")

输出:

要购买的东西有:

- 牛奶

- 面包

- 苹果

- 香蕉

🔢 带序号的遍历

方法1:手动计数

shopping_list = ['牛奶', '面包', '苹果', '香蕉']  

num = 1  
for item in shopping_list:  
    print(f"{num}. {item}")  
    num += 1

方法2:使用enumerate()

shopping_list = ['牛奶', '面包', '苹果', '香蕉']  

for i, item in enumerate(shopping_list, 1):  
    print(f"{i}. {item}")

两种方法输出都是:

1. 牛奶

2. 面包

3. 苹果

4. 香蕉

🎭 相声报菜名 - 综合实战

🎤

用Python来一段相声!

模仿相声《报菜名》,用列表存储菜名,然后一口气报出来!

# 相声报菜名程序  
menu = [  
    "蒸羊羔", "蒸熊掌", "蒸鹿尾儿", "烧花鸭", "烧雏鸡",  
    "烧子鹅", "卤煮咸鸭", "酱鸡", "腊肉", "松花小肚儿",  
    "晾肉", "香肠", "什锦苏盘", "熏鸡白肚儿", "清蒸八宝猪"  
]  

print("报菜名开始!")  
print("=" * 50)  

# 方法1:直接报菜名  
for dish in menu:  
    print(dish, end="、")  

print("\n")  
print("=" * 50)  

# 方法2:带序号报菜名  
print(f"一共有{len(menu)}道菜:")  
for i, dish in enumerate(menu, 1):  
    print(f"{i:2d}. {dish}")

🎬 运行效果:

报菜名开始!  
==================================================  
蒸羊羔、蒸熊掌、蒸鹿尾儿、烧花鸭、烧雏鸡、烧子鹅、卤煮咸鸭、酱鸡、腊肉、松花小肚儿、晾肉、香肠、什锦苏盘、熏鸡白肚儿、清蒸八宝猪、  

==================================================  
一共有15道菜:  
 1. 蒸羊羔  
 2. 蒸熊掌  
 3. 蒸鹿尾儿  
 ...  
15. 清蒸八宝猪

🎯 功能扩展:互动版报菜名

# 互动版报菜名程序  
menu = ["蒸羊羔", "蒸熊掌", "蒸鹿尾儿", "烧花鸭"]  

while True:  
    print("\n===== 菜单管理系统 =====")  
    print("1. 查看所有菜品")  
    print("2. 添加新菜品")  
    print("3. 删除菜品")  
    print("4. 查找菜品")  
    print("0. 退出")  
    
    choice = input("请选择操作:")  
    
    if choice == "1":  
        print(f"\n当前菜单有{len(menu)}道菜:")  
        for i, dish in enumerate(menu, 1):  
            print(f"{i}. {dish}")  
    
    elif choice == "2":  
        new_dish = input("请输入新菜品名:")  
        menu.append(new_dish)  
        print(f"✅ 已添加 {new_dish}")  
    
    elif choice == "3":  
        dish_name = input("请输入要删除的菜品:")  
        if dish_name in menu:  
            menu.remove(dish_name)  
            print(f"✅ 已删除 {dish_name}")  
        else:  
            print("❌ 菜单中没有这道菜")  
    
    elif choice == "4":  
        dish_name = input("请输入要查找的菜品:")  
        if dish_name in menu:  
            index = menu.index(dish_name)  
            print(f"✅ 找到了!{dish_name} 在第{index+1}个位置")  
        else:  
            print("❌ 菜单中没有这道菜")  
    
    elif choice == "0":  
        print("感谢使用,再见!")  
        break

✏️ 课堂练习

📝

练习1:创建和输出列表

任务:

创建一个包含你最喜欢的5种水果的列表,然后输出这个列表。

💡 提示:

fruits = ["苹果", "香蕉", ...]

📝

练习2:添加元素

任务:

在上面的水果列表中,添加"草莓"和"芒果",然后输出新列表。

💡 提示:

使用 append() 方法两次,或使用 extend() 一次添加

📝

练习3:删除元素

任务:

从列表中删除"香蕉",然后输出修改后的列表。

💡 提示:

使用 remove() 方法

📝

练习4:遍历列表

任务:

使用for循环,带序号输出列表中的每个水果。

格式:1. 苹果 2. 草莓 ...

💡 提示:

使用 enumerate() 或手动计数

📝

练习5:综合应用 ⭐

任务:

制作一个"我的小书架"程序:

  • 创建一个包含5本书的列表
  • 输入一本书名,判断是否在书架上
  • 如果在,输出它在第几个位置
  • 如果不在,询问是否要添加

💡 提示:

综合使用 in、index()、append() 等方法

📚 知识总结

📋 列表操作速查表

创建列表

list = [元素1, 元素2, ...]

访问元素

list[索引]

添加元素

append() / insert() / extend()

删除元素

remove() / pop() / del

查找元素

in / index() / count()

遍历列表

for 元素 in 列表:

列表长度

len(列表)

⚠️ 重点提醒

1️⃣ 索引从0开始

第一个元素是list[0],不是list[1]!

2️⃣ 使用index()前先判断

先用in判断元素是否存在,避免报错!

3️⃣ 方括号[]不要忘

列表用[]包裹,不是()或{}

4️⃣ 逗号分隔元素

每个元素之间用英文逗号,分隔

5️⃣ 遍历时可修改

遍历列表时可以修改元素的值

🗺️ 列表知识思维导图

📝

创建列表

用[]定义

增加元素

append/insert/extend

删除元素

remove/pop/del

🔍

查找元素

in/index/count

💡 编程小建议

🤔

多思考

遇到问题先想想为什么

✍️

多练习

每天写一点代码

🐛

多调试

错误是最好的老师

🎉

恭喜你完成了列表的学习!

今天我们学会了:

什么是列表

用[]装多个元素的容器

列表的索引

从0开始的门牌号

增加元素

append、insert、extend

删除元素

remove、pop、del

查找元素

in、index、count

遍历列表

用for循环访问每个元素

📖 下节课预告:

列表的高级操作与应用

列表排序、切片、列表推导式等更多精彩内容!

💪

坚持练习

每天进步一点点

🚀

勇于尝试

不怕犯错误

🌟

相信自己

你可以做到

Python编程,从这里起航!

🎓 💻 🌈