Python零基础教程第六课:数据的收纳盒——列表

浏览量:13 次 发布时间:2025-12-26 17:49 作者:明扬工控商城 下载docx

最近更新:Python零基础教程第七课:我的第一个工具箱——函数

Python零基础教程第六课 数据的收纳盒 列表

欢迎来到第六课。前面我们学会了让程序做选择和重复执行,今天我们要学习一个非常重要的工具,列表。列表就像我们生活中的各种收纳盒,可以帮助我们整理和管理大量数据。

第一部分 什么是列表?

想象一下,你去超市购物,手里拿着一张购物清单:

1.     苹果

2.     牛奶

3.     面包

4.     鸡蛋

在Python里,我们可以用一个列表来存储这些信息:

代码部分:
购物清单 = ["苹果", "牛奶", "面包", "鸡蛋"]

列表就是按顺序排列的一组数据,可以放任何类型的东西。

创建你的第一个列表
打开IDLE,新建一个文件:

代码部分:
创建各种列表
水果列表 = ["苹果", "香蕉", "橙子", "草莓"]
数字列表 = [1, 2, 3, 4, 5]
混合列表 = ["小明", 18, "学生", 170.5]
空列表 = []

print("水果列表:", 水果列表)
print("数字列表:", 数字列表)
print("混合列表:", 混合列表)
print("空列表:", 空列表)

运行结果:
水果列表: ['苹果', '香蕉', '橙子', '草莓']
数字列表: [1, 2, 3, 4, 5]
混合列表: ['小明', 18, '学生', 170.5]
空列表: []

第二部分 访问列表中的元素

列表就像一个有很多格子的抽屉,每个格子都有编号,索引。

索引:列表的位置编号
Python的索引从0开始,不是从1开始!

代码部分:
访问列表元素
同学名单 = ["小明", "小红", "小刚", "小丽"]

print("第一个同学:", 同学名单[0])
print("第二个同学:", 同学名单[1])
print("第三个同学:", 同学名单[2])
print("第四个同学:", 同学名单[3])

访问最后一个元素

代码部分:
访问最后一个元素
水果 = ["苹果", "香蕉", "橙子", "葡萄", "西瓜"]

方法1:知道长度的情况
print("最后一个水果(方法1):", 水果[4])

方法2:使用负数索引(推荐)
print("最后一个水果(方法2):", 水果[-1])
print("倒数第二个水果:", 水果[-2])
print("倒数第三个水果:", 水果[-3])

列表切片:获取一部分元素
切片就像切蛋糕,只取你想要的部分:

代码部分:
列表切片
数字 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print("前三个数字:", 数字[0:3])
print("第三到第六个:", 数字[2:6])
print("从第三个开始:", 数字[2:])
print("前五个:", 数字[:5])
print("最后三个:", 数字[-3:])

第三部分 修改列表内容

列表是可变的,我们可以随时修改它。

修改单个元素

代码部分:
修改列表元素
购物车 = ["苹果", "牛奶", "面包"]

print("原始购物车:", 购物车)

修改第二个元素
购物车[1] = "酸奶"
print("修改后购物车:", 购物车)

修改最后一个元素
购物车[-1] = "蛋糕"
print("再次修改后:", 购物车)

添加元素到列表

代码部分:
添加元素到列表
待办事项 = ["写作业", "打扫房间"]

print("当前待办:", 待办事项)

方法1:append() 在末尾添加一个元素
待办事项.append("买菜")
print("添加后:", 待办事项)

方法2:insert() 在指定位置插入
待办事项.insert(1, "洗衣服")
print("插入后:", 待办事项)

方法3:extend() 添加多个元素
新任务 = ["取快递", "浇花"]
待办事项.extend(新任务)
print("扩展后:", 待办事项)

删除列表元素

代码部分:
删除列表元素
水果篮 = ["苹果", "香蕉", "橙子", "葡萄", "西瓜", "桃子"]

print("原始水果篮:", 水果篮)

方法1:del 根据索引删除
del 水果篮[2]
print("删除索引2后:", 水果篮)

方法2:remove() 根据值删除
水果篮.remove("葡萄")
print("删除'葡萄'后:", 水果篮)

方法3:pop() 删除并返回最后一个元素
删除的水果 = 水果篮.pop()
print("删除的水果:", 删除的水果)
print("pop()后:", 水果篮)

pop()也可以删除指定位置
指定删除 = 水果篮.pop(0)
print("删除第一个:", 指定删除)
print("最后的水果篮:", 水果篮)

第四部分 列表常用操作

获取列表长度

代码部分:
获取列表长度
同学名单 = ["小明", "小红", "小刚", "小丽", "小华"]
人数 = len(同学名单)
print("同学名单:", 同学名单)
print("共有", 人数, "个同学")

检查元素是否在列表中

代码部分:
检查元素是否存在
水果列表 = ["苹果", "香蕉", "橙子"]

使用in关键字
if "苹果" in 水果列表:
print("水果列表中有苹果")
else:
print("水果列表中没有苹果")

if "西瓜" in 水果列表:
print("有西瓜")
else:
print("没有西瓜")

使用not in
if "西瓜" not in 水果列表:
print("确实没有西瓜")

列表排序

代码部分:
列表排序
成绩 = [85, 92, 78, 95, 88]

print("原始成绩:", 成绩)

升序排序(从小到大)
成绩.sort()
print("升序排序:", 成绩)

降序排序(从大到小)
成绩.sort(reverse=True)
print("降序排序:", 成绩)

sorted()函数不影响原列表
原始列表 = [3, 1, 4, 1, 5, 9]
新列表 = sorted(原始列表)
print("原始列表:", 原始列表)
print("排序后新列表:", 新列表)

列表反转

代码部分:
反转列表
字母 = ["A", "B", "C", "D", "E"]
print("原始顺序:", 字母)

字母.reverse()
print("反转后:", 字母)

使用切片反转
数字 = [1, 2, 3, 4, 5]
反转数字 = 数字[::-1]
print("原始数字:", 数字)
print("反转数字:", 反转数字)

第五部分 列表的遍历

遍历就是依次访问列表中的每个元素。

使用for循环遍历列表

代码部分:
遍历列表
水果 = ["苹果", "香蕉", "橙子", "葡萄"]

print("我喜欢的水果:")
for 单个水果 in 水果:
print(" ", 单个水果)

print("\n带编号的水果:")
for 序号, 单个水果 in enumerate(水果):
print(序号 + 1, ".", 单个水果)

同时遍历多个列表

代码部分:
同时遍历多个列表
学生名单 = ["小明", "小红", "小刚"]
学生成绩 = [85, 92, 78]

print("学生成绩单:")
for 学生, 成绩 in zip(学生名单, 学生成绩):
print(学生, "的成绩是:", 成绩)

第六部分 小项目 随机抽奖程序

让我们用列表做一个实用的抽奖程序。

第一步:创建新文件
新建文件,保存为"抽奖程序.py"

第二步:基础版抽奖程序

代码部分:
随机抽奖程序1.0
import random

print("幸运抽奖程序")
print()

参与者名单
参与者 = ["小明", "小红", "小刚", "小丽", "小华", "小芳", "小强", "小美"]

print("本次抽奖参与者:")
for i, 名字 in enumerate(参与者):
print(f" {i+1}. {名字}")

print()
print(f"共有 {len(参与者)} 位参与者")
print()

随机抽取一位幸运者
幸运者 = random.choice(参与者)
print("恭喜获奖者:", 幸运者)
print("恭喜中奖!")

第三步:进阶版抽奖程序

代码部分:
随机抽奖程序2.0
import random
import time

print("幸运大抽奖")
print()

输入参与者
参与者 = []
print("请输入参与者姓名(输入'结束'完成输入):")

while True:
姓名 = input("请输入姓名:")
if 姓名 == "结束":
break
参与者.append(姓名)

if len(参与者) == 0:
print("没有参与者,程序结束。")
exit()

print()
print("参与者名单:")
for i, 名字 in enumerate(参与者):
print(f" {i+1}. {名字}")

print()
print(f"共有 {len(参与者)} 位参与者")

设置奖项
奖项 = {
"一等奖": 1,
"二等奖": 2,
"三等奖": 3
}

print()
print("开始抽奖!")
print()

抽取三等奖
print("首先抽取三等奖(3名):")
time.sleep(1)

三等奖获奖者 = []
for i in range(奖项["三等奖"]):
if len(参与者) == 0:
print("没有更多参与者了!")
break

text

复制

下载


中奖者 = random.choice(参与者)

三等奖获奖者.append(中奖者)
参与者.remove(中奖者)
 
print(f"  {i+1}位三等奖:{中奖者}")
time.sleep(1)

抽取二等奖
print()
print("现在抽取二等奖(2名):")
time.sleep(1)

二等奖获奖者 = []
for i in range(奖项["二等奖"]):
if len(参与者) == 0:
print("没有更多参与者了!")
break

text

复制

下载


中奖者 = random.choice(参与者)

二等奖获奖者.append(中奖者)
参与者.remove(中奖者)
 
print(f"  {i+1}位二等奖:{中奖者}")
time.sleep(1)

抽取一等奖
print()
print("最后抽取一等奖(1名):")
time.sleep(2)

if len(参与者) > 0:
一等奖获奖者 = random.choice(参与者)
print(f" 一等奖获奖者:{一等奖获奖者}")
else:
print(" 没有参与者可供抽取一等奖")

显示所有获奖者
print()
print("获奖名单汇总:")
print("一等奖:", 一等奖获奖者 if len(参与者) > 0 else "无人获奖")
print("二等奖:", "、".join(二等奖获奖者))
print("三等奖:", "、".join(三等奖获奖者))

第七部分 列表的常见错误

错误1:索引超出范围

代码部分:
错误示例
水果 = ["苹果", "香蕉", "橙子"]
print(水果[3]) 错误!索引从0到2,没有索引3

正确做法:先检查长度
if len(水果) > 3:
print(水果[3])
else:
print("索引超出范围")

错误2:修改字符串等不可变对象

代码部分:
字符串不可变,但列表中的字符串元素可以替换
列表 = ["苹果", "香蕉"]
列表[0] = "橙子" 正确!可以替换元素

字符串 = "苹果"
字符串[0] = "橙" 错误!字符串不可变

错误3:列表复制的问题

代码部分:
错误示例
列表1 = [1, 2, 3]
列表2 = 列表1
列表2.append(4)
print("列表1:", 列表1) 列表1也被修改了!

正确复制方法
列表1 = [1, 2, 3]
列表2 = 列表1.copy()
列表3 = 列表1[:]
列表2.append(4)
列表3.append(5)
print("列表1:", 列表1)
print("列表2:", 列表2)
print("列表3:", 列表3)

第八部分 今天学到了什么

今天的内容非常实用,我们学会了:

1.     创建列表:存储一组有序数据

2.     访问列表元素:使用索引和切片

3.     修改列表:添加、删除、修改元素

4.     列表操作:排序、反转、长度等

5.     遍历列表:使用for循环处理每个元素

6.     实际应用:制作抽奖程序

第九部分 练习任务

任务1:成绩管理系统
创建一个学生成绩列表,实现以下功能:

·         添加学生成绩

·         删除学生成绩

·         查找最高分和最低分

·         计算平均分

·         列出所有及格(≥60分)的学生

任务2:待办事项管理器
创建一个待办事项管理器:

·         显示所有待办事项

·         添加新事项

·         标记事项为已完成(移到已完成列表)

·         删除事项

·         按优先级排序

任务3:通讯录程序
创建一个简单的通讯录:

·         添加联系人(姓名、电话)

·         查找联系人

·         删除联系人

·         显示所有联系人

·         按姓名排序

任务4:改进抽奖程序
为抽奖程序添加以下功能:

·         可以设置每个奖项的奖品

·         允许有重复中奖(同一个人可中多个奖)

·         保存中奖记录到文件

·         添加抽奖动画效果

第十部分 下节课预告

下节课我们要学习另一个重要的数据结构:字典。字典就像真正的字典一样,可以通过"关键词"快速找到对应的"解释"。

学了字典后,我们可以:

·         创建更复杂的通讯录(存储更多信息)

·         制作单词本(英文-中文对照)

·         统计词频

·         做更强大的数据存储

学习建议

列表是Python中最常用的数据结构之一,建议你:

1.     多练习列表的各种操作

2.     尝试用列表解决实际问题

3.     理解列表和变量的区别(列表是可变的)

4.     注意列表索引从0开始这个特点

记住,学习编程最好的方法就是多动手。把今天的所有例子都自己运行一遍,然后尝试修改它们,看看会发生什么变化。

你已经学会了管理数据的重要工具,这是编程中非常关键的一步。继续加油,我们下节课再见!

 


明扬工控商城

推荐阅读:

Python零基础教程第十一课 综合项目 智能聊天机器人

Python零基础教程第十课 认识新朋友 模块和包

Python零基础教程第九课:犯错了怎么办?——错误处理

Python零基础教程第八课:与文件对话

Python零基础教程第五课:重复的魔法——循环

Python零基础教程第七课:我的第一个工具箱——函数

Python零基础教程第六课:数据的收纳盒——列表.docx

将本文的Word文档下载到电脑

推荐度:

下载

全部评论

请登录
产业新闻-明扬资讯网
科技资讯-明扬资讯网