【练习】数据结构综合实战
项目简介
数据结构综合实战
知识模块
- 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) ```
深拷贝变量会逐层拷贝,具有数据独立性,原始变量修改,深拷贝数据不受影响
浅拷贝只拷贝第一层引用,当原始变量修改时,浅拷贝数据会随之改变