【练习】数据结构综合实战
项目简介
数据结构综合实战
知识模块
- Python 编程语言
知识点
- 元组操作
- 列表操作
- 字典操作
受众
- 初级测试开发工程师
- 初级Python开发工程师
元组练习
- 定义一个具有一个元素值为
A的元组t。 - 现有元组
t = ("A", "B", "D", "E", "F", "K", "S", "T", "W", "O", "P", "Z"), 通过切片获取元素K至元素W(包括) 之间的所有元素。
列表练习
- 定义一个空列表
data - 向
data中追加元素A,B,C。 - 将元组
("A", "B", "C")中的元素值添加到data中 - 向列表
data中下标3位置插入元素("A", "B", "C") - 统计列表
data中值为A的元素个数并输出。
字典练习
- 现有班级
Python中有三名学生,每名学生包含学号、姓名、年龄、性别、选课等信息,请定义字典进行描述。 - 添加一名新学生信息
- 修改第二名学生的性别为
female - 删除第三名学生选课中的任意一门课程
- 给第一名学生添加地址信息
- 分别使用深拷贝方法和浅拷贝方法复制班级信息,然后修改班级信息中任意学生的课程信息,比较复制变量有何区别并说明。
答案
元组
t = ("A",)t[t.index("K"):t.index("W")+1]
列表
data = []- 使用
append方法依次添加python data.append("A") data.append("B") data.append("C") data.extend(("A", "B", "C"))data.insert(3,("A", "B", "C"))print(data.count("A"))
字典
- 定义字典
info = {"Python":[ {"sid": 1, "name": "tom", "age": 22, "gender": "male", "course": ["python", "pytest", "flask", "html", "css", "javascript"]}, {"sid": 2, "name": "jack", "age": 22, "gender": "female", "course": ["python", "pytest", "flask", "html", "css", "javascript"]}, {"sid": 3, "name": "rose", "age": 22, "gender": "male", "course": ["python", "pytest", "flask", "html", "css", "javascript"]} ]} - 追加元素
info["Python"].append({"sid": 4, "name": "tony", "age": 22, "gender": "male", "course": ["python", "pytest", "flask", "html", "css", "javascript"]}) info["Python"][1]["gender"] = 'female'info["Python"][2]["course"].remove("flask")info["Python"][2]["address"] = "BeiJing"- ```python
import copy
info = {"Python":[
{"sid": 1, "name": "tom", "age": 22, "gender": "male", "course": ["python", "pytest", "flask", "html", "css", "javascript"]},
{"sid": 2, "name": "jack", "age": 22, "gender": "female", "course": ["python", "pytest", "flask", "html", "css", "javascript"]},
{"sid": 3, "name": "rose", "age": 22, "gender": "male", "course": ["python", "pytest", "flask", "html", "css", "javascript"]}
]}
deep_copy_info = copy.deepcopy(info) copy_info = copy.copy(info)
info["Python"][0]["course"].remove("css") info["Python"][1]["course"].append("App")
print(info) print(deep_copy_info) print(copy_info) ```
深拷贝变量会逐层拷贝,具有数据独立性,原始变量修改,深拷贝数据不受影响
浅拷贝只拷贝第一层引用,当原始变量修改时,浅拷贝数据会随之改变