当前位置: 首页 > news >正文

03_数据结构

第3课:数据结构

课程目标

  • 掌握Python的基本数据结构:列表、元组、字典、集合
  • 学习字符串的高级操作方法
  • 理解不同数据结构的特点和适用场景

1. 列表(List)

1.1 列表的创建和基本操作

# 创建列表
fruits = ["苹果", "香蕉", "橙子"]
numbers = [1, 2, 3, 4, 5]# 列表索引(从0开始)
print(fruits[0])      # 苹果
print(fruits[-1])     # 橙子(最后一个元素)# 列表切片
print(fruits[1:3])    # ['香蕉', '橙子']
print(fruits[:2])     # ['苹果', '香蕉']

1.2 列表的常用方法

fruits = ["苹果", "香蕉", "橙子"]# 添加元素
fruits.append("葡萄")           # 在末尾添加
fruits.insert(1, "梨子")       # 在指定位置插入# 删除元素
removed = fruits.pop()          # 删除并返回最后一个元素
fruits.remove("香蕉")           # 删除指定元素# 排序
fruits.sort()                   # 升序排序
fruits.reverse()                # 反转列表

2. 元组(Tuple)

2.1 元组的特点和创建

# 元组是不可变的列表
coordinates = (10, 20)
person = ("张三", 25, "北京")# 元组解包
x, y = coordinates
name, age, city = person
print(f"{name}今年{age}岁,住在{city}")

3. 字典(Dictionary)

3.1 字典的创建和基本操作

# 创建字典
student = {"name": "张三","age": 20,"grades": [85, 90, 88]
}# 访问元素
print(student["name"])           # 张三
print(student.get("age"))        # 20# 添加和修改元素
student["phone"] = "13800138000"
student["age"] = 21

4. 集合(Set)

4.1 集合的特点和创建

# 集合是无序、不重复的元素集合
fruits_set = {"苹果", "香蕉", "橙子", "苹果"}
numbers_set = {1, 2, 3, 4, 5}# 集合运算
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}union = set1 | set2              # 并集
intersection = set1 & set2       # 交集
difference = set1 - set2         # 差集

5. 字符串的高级操作

5.1 字符串方法

text = "  Hello, World!  "# 大小写转换
print(text.upper())      # "  HELLO, WORLD!  "
print(text.lower())      # "  hello, world!  "# 去除空白
print(text.strip())      # "Hello, World!"# 查找和替换
print(text.find("World"))        # 8
print(text.replace("World", "Python"))

6. 练习项目

项目:学生成绩管理系统

print("=== 学生成绩管理系统 ===")students = {}while True:print("\n请选择操作:")print("1. 添加学生")print("2. 录入成绩")print("3. 查询成绩")print("4. 退出")choice = input("请输入选择(1-4):")if choice == "1":student_id = input("请输入学号:")name = input("请输入姓名:")age = int(input("请输入年龄:"))students[student_id] = {"name": name,"age": age,"grades": {}}print("学生添加成功!")elif choice == "2":student_id = input("请输入学号:")if student_id in students:subject = input("请输入科目:")score = float(input("请输入成绩:"))students[student_id]["grades"][subject] = scoreprint("成绩录入成功!")else:print("学号不存在!")elif choice == "3":student_id = input("请输入学号:")if student_id in students:student = students[student_id]print(f"\n学生信息:{student['name']},年龄:{student['age']}")if student['grades']:print("成绩:")for subject, score in student['grades'].items():print(f"  {subject}: {score}")else:print("暂无成绩记录")else:print("学号不存在!")elif choice == "4":print("感谢使用!")breakelse:print("无效选择,请重新输入!")

7. 总结

本节课我们学习了:

  • 列表的创建、操作和常用方法
  • 元组的特点和不可变性
  • 字典的键值对结构和操作
  • 集合的无序性和去重特性
  • 字符串的高级操作方法

8. 下节课预告

下节课我们将学习:

  • 函数的定义和调用
  • 参数传递和返回值
  • 作用域和命名空间
http://www.dtcms.com/a/347379.html

相关文章:

  • 在 CentOS 7 上搭建 OpenTenBase 集群:从源码到生产环境的全流程指南
  • MSPM0G3507工程模板创建
  • 微信小程序自定义组件开发(上):从创建到数据通信详解(五)
  • 纠删码技术,更省钱的分布式系统的可靠性技术
  • 使用springboot开发-AI智能体平台管理系统,统一管理各个平台的智能体并让智能体和AI语音设备通信,做一个属于自己的小艾同学~
  • Dubbo vs Feign
  • 个人思考与发展
  • 探秘北斗卫星导航系统(BDS):架构、应用与未来蓝图,展现中国力量
  • 详细说一说JIT
  • Redis面试精讲 Day 28:Redis云原生部署与Kubernetes集成
  • Js逆向 拼夕夕anti_content
  • 深入解析Spring Boot自动配置原理:简化开发的魔法引擎
  • Java基础第2天总结
  • 青少年机器人技术(四级)等级考试试卷-实操题(2021年12月)
  • 互联网大厂Java面试实战:核心技术栈与场景化提问解析(含Spring Boot、微服务、测试框架等)
  • Java 遗传算法在中药药对挖掘中的深度应用与优化策略
  • 雨雾天气漏检率骤降80%!陌讯多模态车牌识别方案实战解析
  • Redis--day10--黑马点评--秒杀优化消息队列
  • 【JavaEE】多线程 -- JUC常见类和线程安全的集合类
  • 什么猫粮好?2025最新猫粮排名合集
  • 深度解析Bitmap、RoaringBitmap 的原理和区别
  • MySql知识梳理之DDL语句
  • TypeScript 类型系统入门:从概念到实战
  • 从零开始学习JavaWeb-16
  • 阿德莱德多模态大模型导航能力挑战赛!NavBench:多模态大语言模型在具身导航中的能力探索
  • Mysql InnoDB 底层架构设计、功能、原理、源码系列合集【六、架构全景图与最佳实践】
  • 新能源汽车热管理仿真:蒙特卡洛助力神经网络训练
  • android studio配置 build
  • XCVU13P-2FHGB2104E Xilinx(AMD)Virtex UltraScale+ FPGA
  • 力扣热题之多维动态规划