表达式求值数据结构实验报告(数据结构实验报告总结)

14天学完基础语法后,接下来针对PYTHON的重要知识点进行专项训练、分析、理解和应用,以便快速深刻地领会python语法的精髓和编程思维,同时详细记录和分享操作过程以及经验心得,争取在离“爬”的路上越走越顺、越走越近。——题记

继续实训、继续分析、继续记录、走起喔!

01 若 a = dict(),令 b = a,执行 b.update({'x’:1}), a亦被改变。为何?如何避免?

表达式求值数据结构实验报告(数据结构实验报告总结)

01代码图

a = dict()
a = b
b.update({'x': 1})
print(f'a字典为{a},b字典为{b}')
# 避免字典a随着字典b的改变而改变
a.clear()
b = a.copy()
b.update({'x': 1})
print(f'a字典为{a},b字典为{b}')
表达式求值数据结构实验报告(数据结构实验报告总结)

01运行结果

分析记录01

两次运行结果对比可以看出,通过“=”号直接赋值,实质上是没有开辟新的存储空间,两个变量共享存储内容,使用copy()函数复制后,新的运行存储空间产生了,即可避免多个变量共享存储空间。

02 以列表 ['A','B','C','D','E','F','G','H'] 中的每一个元素为键,默认值都是0,创建一个字典。

表达式求值数据结构实验报告(数据结构实验报告总结)

02代码图

# 解法1
lis = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
dic = {item: 0 for item in lis}
print(f'解法1创建字典{dic}')

# 解法2
dic = {}
dic = dic.fromkeys(lis, 0)
print(f'解法2创建字典{dic}')
表达式求值数据结构实验报告(数据结构实验报告总结)

02运行结果

分析记录02

解法1使用字典推导式进行创建字典,for 前面item:0为字典的键值对,item 为要遍历的列表元素,每遍历列表一个元素,字典就产生一对键值对,且所有键的对应的值都是0。

解法2使用字典的fromkeys()函数创建字典,该函数用于创建一个新字典,以序列 中的元素做字典的键,value 为字典所有键对应的初始值。语法为:dict.fromkeys(seq[, value]),参数seq –字典键值列表,value — 可选参数, 设置键序列(seq)对应的值,默认为 None。函数参数中出现的“[ ]”,代表是可选项,不是必选项。

03 将二维结构 [['a’,1],['b’,2]] 和 (('x’,3),('y’,4)) 转成字典。

表达式求值数据结构实验报告(数据结构实验报告总结)

03代码图

# 解法1
lis1 = [['a', 1], ['b', 2]]
tup1 = (('x', 3), ('y', 4))
lis1 += list(tup1)
dic = {item[0]: item[1] for item in lis1}
print(f'解法1转换字典{dic}')

# 解法2
seq1 = [['a', 1], ['b', 2]]
seq2 = (('x', 3), ('y', 4))
dic1 = dict(seq1)
dic2 = dict(seq2)
dic1.update(dic2)
print(f'解法2转换字典{dic1}')
表达式求值数据结构实验报告(数据结构实验报告总结)

03运行结果

分析记录03

解法1 先把列表和元组合并为1个列表,然后使用字典的推导式很直观地转换为字典。因合并后的列表为二维列表,所以item此时不是单个数据元素,而是一个列表元素(含2个元素),故item[0]代表列中列的第一个元素,即为字典的键,item[1]代表列中列的第二个元素,即为字典的值。

解法2 先使用dict()函数把列表和元组转换为2个字典,然后再使用字典的update()函数更新任一字典进行转换字典。

04 将元组 (1,2) 和 (3,4) 合并成一个元组。

表达式求值数据结构实验报告(数据结构实验报告总结)

04代码图

表达式求值数据结构实验报告(数据结构实验报告总结)

04运行结果

分析记录04

元组与列表类似,下标索引从0开始,可以进行截取,组合等,但是元组的元素是不可修改的,当只有一个元素时,需要在元素后面添加逗号,如tup=(10,)。与列表一样,使用“+”操作既可以合并元组。

05 将空间坐标元组 (1,2,3) 的三个元素解包对应到变量 x,y,z。

表达式求值数据结构实验报告(数据结构实验报告总结)

05代码图

表达式求值数据结构实验报告(数据结构实验报告总结)

05运行结果

分析记录05

涉及到元组的打包和拆包,将多个元素放到元组中为打包,将元组中的元素取出来,分别赋值给不同的变量,称为拆包。就像送外卖,假设外卖箱是元组,外卖员取餐盒放入箱子过程就是元组打包,外卖员派送餐盒给不同的点餐者的过程就是元组拆包。

06 返回元组 ('Alice’,'Beth’,'Cecil’,'Cecil’) 中 'Cecil’ 元素的索引号以及元素个数。

表达式求值数据结构实验报告(数据结构实验报告总结)

06代码图

表达式求值数据结构实验报告(数据结构实验报告总结)

06运行结果

分析记录06

和列表一样,index()函数获取指定元素的索引号,通过count()函数统计指定元素个数,注意当' '中包含字符串的时候,为避免引起歧义,需要使用" "将字符串括起来,而不能使用' '。

07 返回在元组 (2,5,3,7) 索引号为2的位置插入元素 9 之后的新元组。

表达式求值数据结构实验报告(数据结构实验报告总结)

07代码图

# 解法1
tup = (2, 5, 3, 7)
lis = list(tup)
lis.insert(2, 9)
print(tuple(lis))

# 解法2
seq = (2, 5, 3, 7)
tup = seq[:2] + (9, ) + seq[2:]
print(tup)
表达式求值数据结构实验报告(数据结构实验报告总结)

07运行结果

分析记录07

解法1需要注意元组转换为列表后,才能使用insert方法在指定的位置插入元素。

解法2与列表一样,使用切片和"+"合并元组。

2022年6月15日 上午 阴天 心情 释放吧

表达式求值数据结构实验报告(数据结构实验报告总结)

感受图

............试读结束............

查阅全文加微信3231169

如来写作网gw.rulaixiezuo.com(可搜索其他更多资料)

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3231169@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.dawenbi.com/4648.html