自学Python第9天:列表——我终于能把一堆东西放在一起了

自学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,欢迎在评论区告诉我你今天学到了什么,或者遇到了什么报错,一起交流

相关文章: