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. 下节课预告
下节课我们将学习:
- 函数的定义和调用
- 参数传递和返回值
- 作用域和命名空间