吊灯安装,我的公主迅雷下载,u影一族快播
(代码块是防止我们频繁的开空间降低效率设计的,当我们定一个变量需要开辟空间的时候,它会先去检测我们定义的这个值在空间中有没有进行开辟,如果没有开辟就开辟一个空间,如果内存中开辟过就使用同一个)。
a = -6 b = -6 print(a is b) a = 1000 b = 1000 print(id(a),id(b)) print(a is b)
a = "asdfasdfa22143df21af啊发生的vuwqtavuiqf!54人24215124" b = "asdfasdfa22143df21af啊发生的vuwqtavuiqf!54人24215124" print(a == b) print(a is b)
a = "alex" * 6 b = "alex" * 6 print(a == b) print(a is b)
a = "你好啊" * 1 b = "你好啊" * 1 print(a == b) print(a is b)
a = 1000 b = 1000 print(a is b)
a = "asdfasdfasdfsad12341123123121wef214afsda" b = "asdfasdfasdfsad12341123123121wef214afsda" print(a is b)
a = "alex" * 6 b = "alex" * 6 print(a == b) print(a is b)
a = "你好啊" * 0 b = "你好啊" * 0 print(a is b)
小数据池,代码块同在的情况下先执行代码块
(python考虑到我们会经常定义一些值,需要开辟空间和销毁空间,它底层就维护了一个小数据池,这个小数据就是规定一个区间使用的是同一个内存地址)
在py中默认先执行代码块;在终端中执行小数据池
a = 10 b = 10 print(a == b) # true
a = 10 b = 10 print(a is b) # false
a = 1000 b = 1000 print(id(a),id(b))
以后尽量避免,但面试必问
只拷贝第一层元素的地址,只有修改第一层的时候源数据不受影响,给可变数据类型进行添加的时候源数据会受影响
= 是修改 .append是添加
可变数据类型能够修改和添加,不可变数据类型只能修改
(当拷贝完后,如果对其第一层进行修改(就会改变其对应的地址),则就不会对前一个产生影响。。
当拷贝完后,如果对其进行的是添加(不会改变指向地址)就会对前一个发生影响。)
a = [1,2,3,[4,5]] b = a[:] # 浅拷贝 a[-1].append(6) print(b)
a = [1,2,3,[4,5,6,[9,10]],67] b = a # 赋值 b = a[:] a[-2].append(10) a[-2][-1].append(10) print(b)
a = [1,2,[10,7,8],4] b = a[:] b[-2] = 90 print(a) print(b)
不可变数据类型内存地址共用,可变数据类型新开批一个空间
import copy //导入copy模块
b = copy,deepcopy(a)
深拷贝中可变数据类型新开辟一个空间的原因是防止原可变数据类型发生紊乱。
import copy # 导入 copy模块 a = [1,2,3,[4,5],6] b = copy.deepcopy(a) print(id(a[-2])) print(id(b[-2]))
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python爬虫:Request Payload和Form Data的简单区别说明
浅谈Python中threading join和setDaemon用法及区别说明
Python3-异步进程回调函数(callback())介绍
python继承threading.Thread实现有返回值的子类实例
Python中使用threading.Event协调线程的运行详解
网友评论