第6篇:多维数据盒——管理大量数据 python中文编程

作者: 中文编程倡导者------ 李金雨
联系方式: wbtm2718@qq.com
系列: python中文编程入门教程

** 核心理念: AI时代必须使用中文编程,母语编程阅读效率极高"

第6篇:多维数据盒------管理大量数据

开篇引入

本课目标

  • 理解什么是多维数据盒(列表)
  • 掌握列表的创建和基本操作
  • 掌握列表的索引和切片
  • 掌握列表的遍历和常用功能
  • 理解什么是标签数据盒(字典)
  • 掌握字典的创建和基本操作

生活场景引入

同学们,在日常生活中,我们经常需要管理大量的数据:

  • 购物清单:需要存储多个商品名称
  • 成绩单:需要存储多个学生的成绩
  • 通讯录:需要存储多个联系人的信息
  • 图书馆:需要存储多本书的信息

在Python中,我们可以使用列表和字典来管理这些大量的数据。列表就像一个可以存储多个元素的盒子,而字典则像一个带有标签的盒子,可以通过标签快速找到对应的元素。

预期成果展示

在本课结束时,你将能够:

  • 创建和使用列表存储多个数据
  • 对列表进行增删改查操作
  • 使用列表的常用功能
  • 创建和使用字典存储键值对数据
  • 对字典进行增删改查操作
  • 编写一个班级成绩管理系统

概念讲解

1. 什么是多维数据盒(列表)

列表是Python中最常用的数据结构之一,它可以存储多个不同类型的元素,用方括号([])包围,元素之间用逗号分隔。

生活例子

  • 购物清单:["苹果", "香蕉", "橙子"]
  • 成绩单:[85, 92, 78, 88]
  • 通讯录:["张三", "李四", "王五"]

代码示例

python 复制代码
# 创建列表
购物清单 = ["苹果", "香蕉", "橙子", "葡萄"]
成绩单 = [85, 92, 78, 88, 95]
混合列表 = ["张三", 15, 1.65, True]

print(购物清单)
print(成绩单)
print(混合列表)

2. 访问元素(索引)

列表中的每个元素都有一个索引,从0开始计数。我们可以通过索引来访问列表中的元素。

生活例子

  • 购物清单中的第一个商品:购物清单[0]
  • 成绩单中的第二个成绩:成绩单[1]

代码示例

python 复制代码
# 访问列表元素
购物清单 = ["苹果", "香蕉", "橙子", "葡萄"]

print("第一个商品:", 购物清单[0])
print("第二个商品:", 购物清单[1])
print("第三个商品:", 购物清单[2])
print("第四个商品:", 购物清单[3])

# 负数索引(从末尾开始计数)
print("最后一个商品:", 购物清单[-1])
print("倒数第二个商品:", 购物清单[-2])

3. 修改、添加、删除元素

我们可以对列表进行修改、添加和删除元素的操作。

修改元素

python 复制代码
# 修改列表元素
成绩单 = [85, 92, 78, 88, 95]
print("修改前:", 成绩单)

成绩单[2] = 82  # 修改第三个元素(索引为2)
print("修改后:", 成绩单)

添加元素

  • append():在列表末尾添加一个元素
  • insert():在指定位置插入一个元素
  • extend():将另一个列表的元素添加到当前列表
python 复制代码
# 添加元素
购物清单 = ["苹果", "香蕉", "橙子"]
print("添加前:", 购物清单)

# append():在末尾添加
购物清单.append("葡萄")
print("添加后:", 购物清单)

# insert():在指定位置插入
购物清单.insert(1, "梨")  # 在索引1的位置插入"梨"
print("插入后:", 购物清单)

# extend():添加另一个列表的元素
其他水果 = ["草莓", "蓝莓"]
购物清单.extend(其他水果)
print("扩展后:", 购物清单)

删除元素

  • del:删除指定索引的元素
  • remove():删除指定值的元素
  • pop():删除并返回指定索引的元素(默认为最后一个)
python 复制代码
# 删除元素
购物清单 = ["苹果", "香蕉", "橙子", "葡萄", "梨"]
print("删除前:", 购物清单)

# del:删除指定索引的元素
del 购物清单[1]  # 删除索引为1的元素
print("删除后:", 购物清单)

# remove():删除指定值的元素
购物清单.remove("橙子")  # 删除值为"橙子"的元素
print("删除后:", 购物清单)

# pop():删除并返回指定索引的元素
被删除的元素 = 购物清单.pop()  # 默认为最后一个元素
print("被删除的元素:", 被删除的元素)
print("删除后:", 购物清单)

4. 列表切片

列表切片用于获取列表的一部分,语法为列表[起始索引:结束索引:步长]

生活例子

  • 获取购物清单的前两个商品:购物清单[0:2]
  • 获取成绩单的中间三个成绩:成绩单[1:4]

代码示例

python 复制代码
# 列表切片
数字列表 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 获取从索引0到2的元素(不包括2)
print(数字列表[0:2])  # 输出:[0, 1]

# 获取从索引2到末尾的元素
print(数字列表[2:])  # 输出:[2, 3, 4, 5, 6, 7, 8, 9]

# 获取从开头到索引5的元素(不包括5)
print(数字列表[:5])  # 输出:[0, 1, 2, 3, 4]

# 获取所有元素
print(数字列表[:])  # 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 步长为2,获取偶数位置的元素
print(数字列表[::2])  # 输出:[0, 2, 4, 6, 8]

# 步长为-1,反转列表
print(数字列表[::-1])  # 输出:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

5. 列表遍历(for循环)

我们可以使用for循环来遍历列表中的每个元素。

生活例子

  • 逐个查看购物清单中的商品
  • 逐个处理成绩单中的成绩

代码示例

python 复制代码
# 列表遍历
购物清单 = ["苹果", "香蕉", "橙子", "葡萄"]

# 方法1:直接遍历元素
print("方法1:直接遍历元素")
for 商品 in 购物清单:
    print("我需要买:" + 商品)

# 方法2:使用索引遍历
print("\n方法2:使用索引遍历")
for i in range(len(购物清单)):
    print(f"第{i+1}个商品:{购物清单[i]}")

# 方法3:使用enumerate()函数
print("\n方法3:使用enumerate()函数")
for 索引, 商品 in enumerate(购物清单, 1):
    print(f"第{索引}个商品:{商品}")

6. 常用列表功能

Python提供了许多内置函数和方法来操作列表:

  • len():获取列表长度
  • sum():计算列表中数字的和
  • max():获取列表中的最大值
  • min():获取列表中的最小值
  • sort():对列表进行排序
  • sorted():返回排序后的列表,不修改原列表
  • reverse():反转列表
  • index():查找元素的索引
  • count():统计元素出现的次数

代码示例

python 复制代码
# 常用列表功能
成绩单 = [85, 92, 78, 88, 95]

print("成绩单:", 成绩单)
print("列表长度:", len(成绩单))
print("总分:", sum(成绩单))
print("最高分:", max(成绩单))
print("最低分:", min(成绩单))
print("平均分:", sum(成绩单) / len(成绩单))

# 排序
成绩单.sort()
print("排序后:", 成绩单)

# 反转
成绩单.reverse()
print("反转后:", 成绩单)

# 查找元素
成绩 = 88
print(f"{成绩}的索引:", 成绩单.index(成绩))

# 统计元素出现的次数
print(f"{成绩}出现的次数:", 成绩单.count(成绩))

7. 标签数据盒(字典)

字典是Python中另一种重要的数据结构,它存储键值对,用花括号({})包围,键和值之间用冒号(:)分隔,键值对之间用逗号分隔。

生活例子

  • 学生档案:{"姓名": "张三", "年龄": 15, "成绩": 85}
  • 商品信息:{"名称": "苹果", "价格": 5, "数量": 10}

代码示例

python 复制代码
# 创建字典
学生 = {
    "姓名": "张三",
    "年龄": 15,
    "班级": "高一(1)班",
    "成绩": 85
}

商品 = {
    "名称": "苹果",
    "价格": 5,
    "数量": 10,
    "产地": "山东"
}

print(学生)
print(商品)

8. 字典的增删改查

访问值:通过键来访问值

python 复制代码
# 访问字典值
学生 = {"姓名": "张三", "年龄": 15, "成绩": 85}

print("姓名:", 学生["姓名"])
print("年龄:", 学生["年龄"])
print("成绩:", 学生["成绩"])

# 使用get()方法访问值(如果键不存在,返回默认值)
print("性别:", 学生.get("性别", "未知"))

修改值:通过键来修改值

python 复制代码
# 修改字典值
学生 = {"姓名": "张三", "年龄": 15, "成绩": 85}
print("修改前:", 学生)

学生["成绩"] = 90  # 修改成绩
学生["性别"] = "男"  # 添加新的键值对

print("修改后:", 学生)

添加键值对:直接赋值

python 复制代码
# 添加键值对
学生 = {"姓名": "张三", "年龄": 15}
print("添加前:", 学生)

学生["班级"] = "高一(1)班"
学生["成绩"] = 85

print("添加后:", 学生)

删除键值对

  • del:删除指定键的键值对
  • pop():删除并返回指定键的值
  • clear():清空字典
python 复制代码
# 删除键值对
学生 = {"姓名": "张三", "年龄": 15, "班级": "高一(1)班", "成绩": 85}
print("删除前:", 学生)

# del:删除指定键的键值对
del 学生["班级"]
print("删除后:", 学生)

# pop():删除并返回指定键的值
成绩 = 学生.pop("成绩")
print("被删除的成绩:", 成绩)
print("删除后:", 学生)

# clear():清空字典
学生.clear()
print("清空后:", 学生)

遍历字典

python 复制代码
# 遍历字典
学生 = {"姓名": "张三", "年龄": 15, "班级": "高一(1)班", "成绩": 85}

# 遍历键
print("遍历键:")
for 键 in 学生:
    print(键)

# 遍历值
print("\n遍历值:")
for 值 in 学生.values():
    print(值)

# 遍历键值对
print("\n遍历键值对:")
for 键, 值 in 学生.items():
    print(f"{键}:{值}")

动手实践

基础练习(必做)

  1. 班级成绩管理系统 :编写一个程序,管理班级学生的成绩

    python 复制代码
    # 班级成绩管理系统
    学生成绩 = {
        "张三": 85,
        "李四": 92,
        "王五": 78,
        "赵六": 88,
        "钱七": 95
    }
    
    # 打印所有学生的成绩
    print("班级成绩表:")
    for 姓名, 成绩 in 学生成绩.items():
        print(f"{姓名}:{成绩}")
    
    # 计算平均分
    总分 = sum(学生成绩.values())
    平均分 = 总分 / len(学生成绩)
    print(f"\n平均分:{平均分:.2f}")
    
    # 找出最高分和最低分
    最高分 = max(学生成绩.values())
    最低分 = min(学生成绩.values())
    
    # 找出最高分和最低分的学生
    for 姓名, 成绩 in 学生成绩.items():
        if 成绩 == 最高分:
            print(f"\n最高分:{姓名},{成绩}分")
        if 成绩 == 最低分:
            print(f"最低分:{姓名},{成绩}分")
  2. 简易通讯录 :编写一个程序,管理联系人信息

    python 复制代码
    # 简易通讯录
    通讯录 = [
        {"姓名": "张三", "电话": "13812345678", "邮箱": "zhangsan@example.com"},
        {"姓名": "李四", "电话": "13987654321", "邮箱": "lisi@example.com"},
        {"姓名": "王五", "电话": "13765432109", "邮箱": "wangwu@example.com"}
    ]
    
    # 打印所有联系人
    print("通讯录:")
    for 联系人 in 通讯录:
        print(f"姓名:{联系人['姓名']},电话:{联系人['电话']},邮箱:{联系人['邮箱']}")
    
    # 添加新联系人
    新联系人 = {"姓名": "赵六", "电话": "13612345678", "邮箱": "zhaoliu@example.com"}
    通讯录.append(新联系人)
    
    print("\n添加新联系人后:")
    for 联系人 in 通讯录:
        print(f"姓名:{联系人['姓名']},电话:{联系人['电话']},邮箱:{联系人['邮箱']}")

进阶练习(选做)

  1. 购物车程序 :编写一个程序,模拟购物车功能

    python 复制代码
    # 购物车程序
    购物车 = []
    
    while True:
        print("\n购物车管理系统")
        print("1. 添加商品")
        print("2. 查看购物车")
        print("3. 修改商品数量")
        print("4. 删除商品")
        print("5. 结算")
        print("6. 退出")
        
        选择 = input("请输入你的选择:")
        
        if 选择 == "1":
            商品名称 = input("请输入商品名称:")
            价格 = float(input("请输入商品价格:"))
            数量 = int(input("请输入商品数量:"))
            购物车.append({"名称": 商品名称, "价格": 价格, "数量": 数量})
            print("商品添加成功!")
        
        elif 选择 == "2":
            print("\n购物车内容:")
            if 购物车:
                for i, 商品 in enumerate(购物车, 1):
                    小计 = 商品["价格"] * 商品["数量"]
                    print(f"{i}. {商品['名称']} - 单价:{商品['价格']},数量:{商品['数量']},小计:{小计}")
            else:
                print("购物车为空!")
        
        elif 选择 == "3":
            if 购物车:
                索引 = int(input("请输入要修改的商品序号:")) - 1
                if 0 <= 索引 < len(购物车):
                    新数量 = int(input("请输入新的数量:"))
                    购物车[索引]["数量"] = 新数量
                    print("商品数量修改成功!")
                else:
                    print("商品序号不存在!")
            else:
                print("购物车为空!")
        
        elif 选择 == "4":
            if 购物车:
                索引 = int(input("请输入要删除的商品序号:")) - 1
                if 0 <= 索引 < len(购物车):
                    购物车.pop(索引)
                    print("商品删除成功!")
                else:
                    print("商品序号不存在!")
            else:
                print("购物车为空!")
        
        elif 选择 == "5":
            if 购物车:
                总价 = 0
                print("\n结算清单:")
                for 商品 in 购物车:
                    小计 = 商品["价格"] * 商品["数量"]
                    总价 += 小计
                    print(f"{商品['名称']} - 单价:{商品['价格']},数量:{商品['数量']},小计:{小计}")
                print(f"\n总价:{总价}")
            else:
                print("购物车为空!")
        
        elif 选择 == "6":
            print("谢谢使用,再见!")
            break
        
        else:
            print("输入错误,请重新输入!")
  2. 单词本程序 :编写一个程序,管理英语单词

    python 复制代码
    # 单词本程序
    单词本 = [
        {"单词": "apple", "释义": "苹果"},
        {"单词": "banana", "释义": "香蕉"},
        {"单词": "orange", "释义": "橙子"}
    ]
    
    while True:
        print("\n单词本管理系统")
        print("1. 添加单词")
        print("2. 查看单词")
        print("3. 修改单词")
        print("4. 删除单词")
        print("5. 退出")
        
        选择 = input("请输入你的选择:")
        
        if 选择 == "1":
            单词 = input("请输入单词:")
            释义 = input("请输入释义:")
            单词本.append({"单词": 单词, "释义": 释义})
            print("单词添加成功!")
        
        elif 选择 == "2":
            print("\n单词列表:")
            for i, 条目 in enumerate(单词本, 1):
                print(f"{i}. {条目['单词']} - {条目['释义']}")
        
        elif 选择 == "3":
            if 单词本:
                索引 = int(input("请输入要修改的单词序号:")) - 1
                if 0 <= 索引 < len(单词本):
                    新单词 = input("请输入新单词:")
                    新释义 = input("请输入新释义:")
                    单词本[索引]["单词"] = 新单词
                    单词本[索引]["释义"] = 新释义
                    print("单词修改成功!")
                else:
                    print("单词序号不存在!")
            else:
                print("单词本为空!")
        
        elif 选择 == "4":
            if 单词本:
                索引 = int(input("请输入要删除的单词序号:")) - 1
                if 0 <= 索引 < len(单词本):
                    单词本.pop(索引)
                    print("单词删除成功!")
                else:
                    print("单词序号不存在!")
            else:
                print("单词本为空!")
        
        elif 选择 == "5":
            print("谢谢使用,再见!")
            break
        
        else:
            print("输入错误,请重新输入!")

知识总结

核心概念回顾

  • 列表:存储多个元素的有序集合
  • 索引:列表中元素的位置,从0开始
  • 切片:获取列表的一部分
  • 字典:存储键值对的无序集合
  • :字典中用于查找值的标识符
  • :字典中与键关联的数据

关键代码速查

功能 代码 说明
创建列表 列表 = [元素1, 元素2, 元素3] 创建一个包含多个元素的列表
访问列表元素 列表[索引] 访问列表中指定索引的元素
添加元素 列表.append(元素) 在列表末尾添加一个元素
删除元素 del 列表[索引] 删除列表中指定索引的元素
列表长度 len(列表) 获取列表的长度
列表排序 列表.sort() 对列表进行排序
创建字典 字典 = {"键1": 值1, "键2": 值2} 创建一个包含多个键值对的字典
访问字典值 字典["键"] 访问字典中指定键的值
添加/修改键值对 字典["键"] = 值 添加或修改字典中的键值对
删除键值对 del 字典["键"] 删除字典中指定键的键值对
遍历字典 for 键, 值 in 字典.items(): 遍历字典中的所有键值对

常见错误提醒

  1. 索引越界:访问列表中不存在的索引
  2. 键不存在:访问字典中不存在的键
  3. 类型错误:在不支持的类型上使用列表或字典操作
  4. 可变对象:列表是可变对象,字典的键必须是不可变对象
  5. 顺序问题:字典在Python 3.7+中保持插入顺序,但在之前的版本中不保证顺序

课后作业

巩固练习题

  1. 编写一个程序,创建一个包含10个随机数的列表,然后对其进行排序
  2. 编写一个程序,创建一个字典,存储5个学生的姓名和成绩,然后计算平均分

创意编程题

  1. 编写一个程序,模拟一个简单的图书馆管理系统,存储图书信息(书名、作者、ISBN)
  2. 编写一个程序,创建一个通讯录,支持添加、删除、修改和查询联系人信息

下篇预习提示

在下一篇中,我们将学习函数,了解如何将代码组织成可重用的功能块。请思考:

  • 生活中有哪些可以被抽象为函数的操作?
  • 如何将重复的代码组织成函数?

学习交流

如果你在学习过程中遇到任何问题,欢迎联系我:

  • ** 视频号,"时空系"
  • 邮箱: wbtm2718@qq.com
  • 其他提示:
  • 本人正在开发纯中文编程语言和编译器,有兴趣的可以交流
  • 本人正在写一本基于中国母语思维习惯的数学教材,可以让你一年内学完从初中到研究生的数学,而且可以让你快速掌握人工智能的关键数学知识,有兴趣的可以交流

祝你学习愉快!

相关推荐
charlie1145141911 小时前
嵌入式Linux驱动开发(7) 从虚拟设备到真实硬件 —— LED驱动硬件基础
linux·开发语言·驱动开发·内核·c
小敬爱吃饭1 小时前
知识图谱实战第一章:知识图谱全景解析其定义、技术演进与十大应用场景
人工智能·python·目标检测·自然语言处理·flask·nlp·知识图谱
小短腿的代码世界1 小时前
QCefView深度解析:Qt应用中嵌入Chromium浏览器的终极方案
开发语言·qt
m0_588758481 小时前
如何查看集群版本_crsctl query crs activeversion当前版本
jvm·数据库·python
陳錄生2 小时前
Emacs 读sql server数据库(数据cp936)中文乱码问题。
python·emacs·sql server
Reese_Cool2 小时前
【STL】蓝桥杯/天梯赛终极杀器!10个C++字符串核心技巧,暴力破解高频考点
开发语言·c++·蓝桥杯·stl
TestCopilot2 小时前
从零用 Python 实现最基础的MCP协议
python·mcp
zh1570232 小时前
CSS如何让元素出现时带抖动_利用关键帧定义抖动动画
jvm·数据库·python