博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小数据池、代码块以及深浅拷贝
阅读量:5017 次
发布时间:2019-06-12

本文共 1888 字,大约阅读时间需要 6 分钟。

day06

1.小数据池

# 小数据池 -- 缓存机制(驻留机制)# == 判断两边内容是否相等a = 10b = 10print(a==b)# is 是a = 10b = 10print(a is b)  # True is 判断基于内存地址进行判断# 小数据池的数字范围: -5 ~ 256# 代码块:一个文件,一个函数,一个类,一个模块,终端中每一个行是一个代码块# 支持:# 数字:    # 在同一代码块下 只要内容相同就采用相同的内存地址(-5~正无穷)    # 数字在做乘法的时候范围-5~256 ****    # 数字在做乘法的时候不能使用浮点数# 字符串:    # 在同一代码块下 只要内容相同就采用相同的内存地址    # 乘法的时候总长度不能超过20  ****    # 乘法的时候中文,特殊符号乘以1或0# 布尔值:    # 在同一代码块下 只要内容相同就采用相同的内存地址# 小数据池# 数字: -5~256# 字符串:    # 在同一代码块下 只要内容相同就采用相同的内存地址    # 乘法的时候总长度不饿能超过20 ****    # 乘法的时候中文,特殊符号乘以0# 布尔值    # 在同一代码块下 只要内容相同就采用相同的内存地址    # 小数据池的验证方法,必须脱离代码块才能验证    # 先执行代码块的规则,再执行小数据的规则 --(驻留机制)    # 必会: # == 判断等号两边的值是否相等 # is 判断两边的内存地址是否相等

2.深浅拷贝

# 深浅拷贝 复制# 面试必问,赋值,浅拷贝,深拷贝# 赋值lst = [1,2,3,4,5,[6,7,8]]lst1 = lstprint(lst1)print(lst)lst1[-1].append(8)print(lst1) # 输出 [1,2,3,4,5,[6,7,8,9]]print(lst) # 输出[1,2,3,4,5,[6,7,8,9]]# 浅拷贝# 浅拷贝的时候,只会开辟一个新的容器列表,其他元素使用的都是列表中的元素lst = [1,2,3,4,5,[6,7,8]]lst1 = lst.copy()lst1[-1].append(9)print(lst) print(lst1) # 两个都变 [1,2,3,4,5,[6,7,8,9]]lst = [1,2,3,4,5,[6,7,8]]lst1 = lst.copy()lst[-1] = 1print(lst) # [1,2,3,4,5,1]print(lst1) # [1,2,3,4,5,[6,7,8]]lst = [1,2,3,4,5[6,7,8,[9,10]]]lst1 = lst.copy()lst1.append(11)print(lst) # 变 print(lst1) # 不变lst = [[1,2],90,6,7,[5,6]]lst1 = lst.copy()lst1[-1] = 8print(lst) # 不变print(lst1) # 变dic = {"alex":[1,2,3,[5,6]]}dic1 = dic.copy()dic["alex"][0] = "57"print(dic) # 变print(dic1) # 变 字典的值就相当于二级列表# 深拷贝import copy lst = [1,2,3,[5,6,7]]lst1 = copy.deepcopy(lst) # 深拷贝lst[-1].append(8)print(lst) # 变print(lst1) # 不变lst = [1,2,3,4,[5,16,7,[8, 10, 9]]]import copylst1 = copy.deepcopy(lst)print(id(lst[-1][-1]))print(id(lst1[-1][-1])) # 内存地址# 总结# 浅拷贝的时候只拷贝第一层元素# 浅拷贝在修改第一次元素(不可变数据类型)的时候,拷贝出来的新列表不进行改变# 浅拷贝在替换第一层元素(可变数据类型)的时候,拷贝出来的新列表不进行改变# 浅拷贝在修改第一层元素中的元素(第二层)的时候,拷贝出来的新列表进行改变# 深拷贝开辟一个容器空间(列表),不可变数据公用,可变数据类型(再次开辟一个新的空间),空间里的值是不可变的数据进行公用时,可变的数据类型再次开辟空间

转载于:https://www.cnblogs.com/alex3174/p/11172538.html

你可能感兴趣的文章
CSS(1) CSS简介
查看>>
BZOJ-4010 菜肴制作 贪心+堆+(拓扑图拓扑序)
查看>>
node.js 学习笔记
查看>>
汉诺塔问题的C++实现
查看>>
sql server 调优----索引未使用
查看>>
Codeforces Round 56-C. Mishka and the Last Exam(思维+贪心)
查看>>
python代码小实践之dorm_lab_changeIP
查看>>
ssm开发心得_路径监听类
查看>>
指针理解
查看>>
[SHOI2015]超能粒子炮·改
查看>>
cocos2d-x 3.0 安装及创建项目
查看>>
【redis运维】redis自己主动安装脚本(仅仅安装redis)
查看>>
Unity3D中的单例模式
查看>>
用操作系统来思考人生
查看>>
STL标准模板库介绍
查看>>
C# 截取屏幕局部
查看>>
反转链表
查看>>
vPC配置
查看>>
原生JS动态添加和删除类
查看>>
PS PNG导出的时候是否交错有什么影响
查看>>