自学Python第9天:列表------我终于能把一堆东西放在一起了
新手向 | 2026-07-01
前面八天,我学的变量都是单个的:一个数字、一个字符串、一个布尔值。就像手里只能拿一个东西。
但如果我想存全班同学的名字呢?难道要定义50个变量?name1 = "张三"、name2 = "李四"......这样写到第50个,手都酸了。
今天就来解决这个问题------用列表把一堆东西放在一起。
一、列表是什么
想象一下购物清单。你不会把要买的东西一件一件分开记,而是写在一张清单上:
text
牛奶
面包
鸡蛋
苹果
列表就是程序里的"购物清单"------它可以同时存放很多个数据。
在Python里,列表用方括号\[\]表示,里面的数据用逗号隔开:
python
fruits = ["苹果", "香蕉", "橙子"]
numbers = [1, 2, 3, 4, 5]
mixed = ["你好", 100, True] # 列表里可以放不同类型的数据
二、列表的下标索引
列表里的每个数据都有一个编号,叫下标 或索引。从0开始:
python
fruits = ["苹果", "香蕉", "橙子"]
# 0 1 2
想拿到列表里的某个数据,用 列表名下标:
python
fruits = ["苹果", "香蕉", "橙子"]
print(fruits[0]) # 苹果
print(fruits[1]) # 香蕉
print(fruits[2]) # 橙子
**注意:下标从0开始。**fruits1拿的是第二个,不是第一个。很多新手在这里搞混,我一开始也总是写成fruits1想拿第一个。
三、负索引:从后往前数
除了正着数,Python还支持倒着数:
python
fruits = ["苹果", "香蕉", "橙子"]
# 0 1 2
# -3 -2 -1
python
print(fruits[-1]) # 橙子(倒数第一个)
print(fruits[-2]) # 香蕉(倒数第二个)
当你想取列表最后一个元素时,fruits-1比fruitslen(fruits)-1方便的多,以后会经常用到。
四、一个我踩过的坑:下标越界
这是新手最容易犯的错误之一,举个例子:
python
fruits = ["苹果", "香蕉", "橙子"]
print(fruits[3])
运行后报错:
text
IndexError: list index out of range
因为 fruits 只有 3 个元素,下标是 0、1、2,没有 3。访问不存在的下标就会报错。记住:最大下标是 len(列表) - 1。
五、列表的常用操作
列表可以增删改查,非常灵活。
1.查询:查看某个值是否存在
举个例子:
python
fruits = ["苹果", "香蕉", "橙子"]
print("苹果" in fruits) # True
print("葡萄" in fruits) # False
in 返回布尔值,表示某个元素是否在列表里。
2.增加:往列表里添加数据
append():在末尾添加一个元素
python
fruits = ["苹果", "香蕉"]
fruits.append("橙子")
print(fruits) # ['苹果', '香蕉', '橙子']
insert():在指定位置插入
python
fruits = ["苹果", "香蕉"]
fruits.insert(1, "橙子") # 在下标1的位置插入"橙子"
print(fruits) # ['苹果', '橙子', '香蕉']
extend():把另一个列表的所有元素加进来
python
fruits = ["苹果", "香蕉"]
more = ["橙子", "葡萄"]
fruits.extend(more)
print(fruits) # ['苹果', '香蕉', '橙子', '葡萄']
3.删除:从列表里移除数据
pop():删除指定位置的元素(默认删除最后一个)
python
fruits = ["苹果", "香蕉", "橙子"]
fruits.pop() # 删除最后一个
print(fruits) # ['苹果', '香蕉']
fruits.pop(0) # 删除下标0的元素
print(fruits) # ['香蕉']
remove():删除第一个匹配的指定值
python
fruits = ["苹果", "香蕉", "橙子", "香蕉"]
fruits.remove("香蕉") # 只删除第一个"香蕉"
print(fruits) # ['苹果', '橙子', '香蕉']
4.修改:直接重新赋值
python
fruits = ["苹果", "香蕉", "橙子"]
fruits[1] = "草莓"
print(fruits) # ['苹果', '草莓', '橙子']
六、用for循环遍历列表
有了列表,配合for循环就可以批量处理数据了,举个例子:
python
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(f"我喜欢吃{fruit}")
运行结果:
text
我喜欢吃苹果
我喜欢吃香蕉
我喜欢吃橙子
for循环会自动依次取出列表里的每一个元素,赋值给fruit,然后执行循环体。
七、综合示例:通讯录管理
把今天学的东西串起来,写一个简单的通讯录管理程序:
python
contacts = []
def show_menu():
print("\n--- 通讯录 ---")
print("1. 添加联系人")
print("2. 查看所有联系人")
print("3. 删除联系人")
print("4. 退出")
def add_contact():
name = input("请输入姓名:")
phone = input("请输入电话:")
contacts.append({"name": name, "phone": phone})
print("添加成功!")
def show_contacts():
if len(contacts) == 0:
print("通讯录为空")
return
for c in contacts:
print(f"姓名:{c['name']},电话:{c['phone']}")
def delete_contact():
name = input("请输入要删除的姓名:")
for c in contacts:
if c['name'] == name:
contacts.remove(c)
print("删除成功!")
return
print("未找到该联系人")
while True:
show_menu()
choice = input("请选择:")
if choice == "1":
add_contact()
elif choice == "2":
show_contacts()
elif choice == "3":
delete_contact()
elif choice == "4":
print("再见!")
break
else:
print("无效选择,请重新输入")
这段代码包含了今天学的:
·列表的定义和操作(append\remove\遍历)
·for循环遍历列表
·列表存储字典(每个联系人是一个字典)
小结
今天学的东西,整理成一张速查表:
| 知识点 | 作用 | 示例 |
|---|---|---|
| 定义列表 | 用 \[\] 包裹数据 | fruits = "苹果", "香蕉" |
| 下标索引 | 取指定位置的数据 | fruits0 |
| 负索引 | 从后往前取 | fruits-1 |
| append() | 在末尾添加一个元素 | fruits.append("橙子") |
| insert() | 在指定位置插入 | fruits.insert(1, "橙子") |
| extend() | 合并另一个列表 | fruits.extend(more) |
| pop() | 删除指定位置的元素 | fruits.pop() |
| remove() | 删除第一个匹配的值 | fruits.remove("香蕉") |
| in | 判断元素是否在列表里 | "苹果" in fruits |
| for 循环遍历 | 依次取出每个元素 | for f in fruits: |
下一篇我打算学元组和切片。
如果你也在学Python,欢迎在评论区告诉我你今天学到了什么,或者遇到了什么报错,一起交流
相关文章:
- 自学Python第1天:从下载PyCharm和安装环境开始
- 自学Python第2天:敲下第一行print("Hello World"),我遇到了3个问题
- 自学Python第3天:数据类型、转换、运算符------我终于搞懂了为什么"1"和1不一样
- 自学Python第4天:字符串的三种定义方式、拼接、格式化
- 自学Python第5天:数据输入(input语句)、布尔类型、比较运算符和逻辑运算符
- 自学Python第6天:if判断、if-else、if-elif-else和嵌套判断
- 自学Python第7天:for循环和while循环------我终于让程序能重复做一件事了
- 自学Python第8天:函数------我终于能把重复的代码"打包"起来了