第九课:数据的“篮子” – 列表 (List)

  • 时长: 90 分钟
  • 教学目标:
    • 理解“列表”的概念:一种可以存放多个数据,并且数据可以按顺序排列的数据结构。
    • 学会创建列表 []
    • 掌握如何通过位置编号(索引)访问、修改列表里的元素(与字符串索引类似)。
    • 学习向列表中添加元素 (.append(), .insert())。
    • 学习从列表中删除元素 (.remove(), .pop())。
    • 学会获取列表的长度 (len())。
    • 复习如何使用 for 循环遍历列表里的每一个元素。

课程内容

1. 复习与引入 (10 分钟)

  • 复习: 复习变量、数据类型、字符串、基本的循环和条件判断。
  • 提出问题: 老师提问:“如果我想记住我们班所有同学的名字怎么办?一个一个存到不同的变量里 (student1 = "小明", student2 = "小红") 会不会太麻烦了?如果同学很多或者名字经常变怎么办?如果我想记住我今天去超市要买的所有东西:牛奶、面包、鸡蛋,怎么在一个地方把它们记下来?”
  • 引出列表: 这时候,我们就需要一个可以放很多东西,并且能记住它们的顺序的“篮子”或者“容器”。在 Python 里,这个“篮子”就叫做列表 (List)

2. 创建和查看列表 (15 分钟)

  • 概念: 列表是一个有序的集合,可以存放任意类型的数据(数字、文字、甚至是其他列表)。列表里的数据叫做元素

  • 创建语法: 使用方括号 [] 来创建列表,不同的元素之间用逗号 , 分隔。

    # 创建一个空的列表
    empty_list = []
    
    # 创建一个存放名字的列表 (都是字符串)
    names = ["小明", "小红", "小刚", "小丽"]
    
    # 创建一个存放数字的列表 (都是整数)
    scores = [85, 92, 78, 95, 88]
    
    # 列表里可以存放不同类型的数据
    my_list = ["apple", 123, True, 3.14]
    
    # 打印列表
    print(names)
    print(scores)
    print(my_list)
    
  • 获取长度 – len(): 和字符串一样,可以使用 len() 函数获取列表里有多少个元素。
    print(len(names)) # 结果是 4
    print(len(empty_list)) # 结果是 0
    
  • 动手实践: 学生创建几个自己的列表,存放同学名字、喜欢的数字、去超市要买的东西等,并打印列表和列表的长度。

3. 访问和修改列表元素 – 索引 (15 分钟)

  • 概念: 列表里的每一个元素也都有一个位置编号,叫做索引,和字符串一样,索引从 0 开始

  • 访问元素: 使用方括号 [] 和索引号来获取特定位置的元素。

    names = ["小明", "小红", "小刚", "小丽"]
    print(names[0]) # 获取第一个元素 '小明'
    print(names[1]) # 获取第二个元素 '小红'
    print(names[3]) # 获取第四个元素 '小丽'
    # print(names[4]) # 错误!索引超出了范围
    
    # 也可以使用负数索引
    print(names[-1]) # 获取最后一个元素 '小丽'
    print(names[-2]) # 获取倒数第二个元素 '小刚'
    
  • 修改元素: 通过索引,我们可以修改列表里特定位置的元素。
    scores = [85, 92, 78, 95, 88]
    print("修改前:", scores)
    scores[2] = 80 # 把第三个元素 (索引为2) 从 78 改成 80
    print("修改后:", scores)
    
  • 动手实践: 学生尝试访问列表里的不同元素,尝试修改列表里的某个元素。

4. 往列表里加东西 (添加元素) (10 分钟)

  • .append(): 在列表的末尾添加一个新的元素。
    fruits = ["apple", "banana"]
    print("添加前:", fruits)
    fruits.append("cherry") # 在末尾添加 'cherry'
    print("添加后:", fruits) # 结果是 ['apple', 'banana', 'cherry']
    
  • .insert(索引, 元素): 在指定的索引位置插入一个新的元素,原来这个位置及后面的元素都会往后移。
    names = ["小明", "小红", "小丽"]
    print("插入前:", names)
    names.insert(2, "小刚") # 在索引 2 的位置插入 '小刚'
    print("插入后:", names) # 结果是 ['小明', '小红', '小刚', '小丽']
    
  • 动手实践: 学生创建一个空列表,然后用 .append() 往里面添加几个元素。 创建一个有元素的列表,然后用 .insert() 在中间或开头插入一个元素。

5. 从列表里拿掉东西 (删除元素) (10 分钟)

  • .remove(元素值): 删除列表中第一个出现的指定值的元素。
    tasks = ["吃饭", "睡觉", "打豆豆", "吃饭"]
    print("删除前:", tasks)
    tasks.remove("吃饭") # 删除第一个 '吃饭'
    print("删除后:", tasks) # 结果是 ['睡觉', '打豆豆', '吃饭']
    # 如果要删除的元素不存在,会报错
    # tasks.remove("学习") # 错误!
    
  • .pop(索引): 删除并返回指定索引位置的元素。如果不指定索引,默认删除并返回最后一个元素。
    scores = [85, 92, 78, 95, 88]
    print("弹出前:", scores)
    last_score = scores.pop() # 删除并获取最后一个元素
    print("弹出的分数:", last_score) # 结果是 88
    print("弹出后:", scores) # 结果是 [85, 92, 78, 95]
    
    first_score = scores.pop(0) # 删除并获取索引 0 的元素
    print("弹出的分数:", first_score) # 结果是 85
    print("弹出后:", scores) # 结果是 [92, 78, 95]
    
  • 动手实践: 学生创建列表,尝试使用 .remove() 删除某个元素。 尝试使用 .pop() 删除最后一个或指定位置的元素。

6. 遍历列表 – for 循环复习 (10 分钟)

  • 概念: 列表是序列,所以我们可以使用 for 循环方便地遍历列表里的每一个元素。

  • 语法:

    my_list = ["apple", "banana", "cherry"]
    for item in my_list:
      print("我喜欢", item)
    
    # 输出会是:
    # 我喜欢 apple
    # 我喜欢 banana
    # 我喜欢 cherry
    
  • 结合索引遍历: 如果在遍历的同时需要知道元素的索引,可以使用 range(len(列表)) 和索引来访问。
    names = ["小明", "小红", "小刚"]
    for i in range(len(names)):
      print("第", i+1, "个同学是", names[i])
    
    # 输出会是:
    # 第 1 个同学是 小明
    # 第 2 个同学是 小红
    # 第 3 个同学是 小刚
    
  • 动手实践: 学生使用 for 循环遍历自己创建的列表,打印每个元素。

7. 课堂练习 (10 分钟)

让学生独立完成以下练习:

  • 练习 1: 创建一个列表,存放你喜欢的 5 种动物的名字。然后打印出列表的长度,并使用 for 循环逐个打印出列表里的动物名字。
    # 在这里写你的代码
    animals = ["狗", "猫", ...]
    # TODO: 打印列表长度
    # TODO: 使用 for 循环遍历并打印
    
  • 练习 2: 创建一个数字列表,比如 [10, 25, 8, 19, 30]。向列表中添加一个新数字 12。删除列表中的数字 25。然后打印修改后的列表。

  • 练习 3: 创建一个列表,存放你一天要做的事情,比如 ["起床", "吃早饭", "上学", "学习", "玩耍", "睡觉"]。打印出第一件事和最后一件事。删除倒数第二件事(玩耍)。然后打印修改后的列表。

8. 总结与提问 (5 分钟)

  • 回顾: 回顾本节课内容:列表的概念(有序集合),创建列表 [],访问/修改列表元素(索引从 0 开始),添加元素 (.append(), .insert()),删除元素 (.remove(), .pop()),获取长度 (len()),以及如何用 for 循环遍历列表。
  • 提问:
    • 列表和字符串有什么相似的地方?有什么不同的地方?
    • 如何获取列表 my_list = [10, 20, 30] 中的数字 20?
    • 如何往列表 fruits = ["apple", "banana"] 的末尾添加 “orange”?
    • 如何删除列表 nums = [1, 2, 3, 2] 中的第一个数字 2?
  • 答疑: 回答学生问题。

9. 布置课后作业 (5 分钟)

  • 作业 1: 创建一个列表,存放 6 个你同学或家人的名字。使用 for 循环遍历列表,在打印每个名字前加上“你好,”。
  • 作业 2: 创建一个数字列表,存放一些考试分数。计算并打印出这些分数的总和。(提示:在循环外部初始化一个总和变量,在循环内部将每个分数累加到总和变量里)。
  • 作业 3: 编写一个程序,询问用户输入 5 个他喜欢的城市名字,将这些名字存储在一个列表中。然后打印出列表中的第一个城市和最后一个城市,并使用 for 循环遍历列表,将每个城市名字转换为大写后打印出来。
  • 作业 4: (选做) 编写一个简单的待办事项列表程序。创建一个空的待办事项列表。使用 while 循环和 input(),让用户可以选择添加待办事项、查看待办事项、标记完成(从列表中删除)或退出。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。