前言:
而今你们对“python变量内存地址”可能比较看重,各位老铁们都需要分析一些“python变量内存地址”的相关资讯。那么小编同时在网络上网罗了一些有关“python变量内存地址””的相关知识,希望你们能喜欢,兄弟们快快来学习一下吧!一、总结:
1.变量引用的是数据的内存地址。
2.可变数据类型列表和字典对应的变量在增加,删除元素时,变量指向的内存地址不会发生变化,如果重新赋值,则引用的内存地址会发生变化。
二、代码示例如下:
#变量引用数据的内存地址,数据保存在内存中a=1print("1的内存地址:",id(1))print("a的内存地址:",id(a))b=aprint("b的内存地址:",id(b))a=2print("a的内存地址:",id(a))print("b的内存地址:",id(b))print("分隔符:","***"*10)def test(num): print("%d的内存地址是:%d"%(num,id(num)))a=12print("a的内存地址是:{}".format(id(a)))print(test(a))#以下是可变数据类型列表和字典变量的内存地址引用print("分隔符:","***"*10,"以下是列表的内存地址引用示例")aa=[1,3,4,5]print("aa的内存地址:",id(aa))aa.append(55)print("aa的内存地址:",id(aa)) #打印列表aa的内存地址,列表新增元素后,列表的内存地址不变aa.clear() #清空列表aa的元素,相当于aa是一个空列表print("aa的内存地址:",id(aa)) #打印列表aa的内存地址,清空列表元素后,列表的内存地址不变aa=[]print("aa的内存地址:",id(aa)) #将空列表赋值给aa后,再打印aa的内存地址,与之前的内存地址已经不相同print("分隔符:","***"*10,"以下是字典的内存地址引用示例")a1={"name":"lisa","age":20} #将字典赋值给a1,即a1引用字典的内存地址print("a1的内存地址:",id(a1))a1.pop("age")print(a1)print("a1的内存地址:",id(a1)) #删除字典中的元素后,变量a1引用的内存地址依然不变a1.clear()print(a1)print("a1的内存地址:",id(a1)) #删除字典中的所有元素后,变量a1引用的内存地址依然不变a1={}print("a1的内存地址:",id(a1)) #对元素a1重新赋值后,a1引用的内存地址发生变化
三、代码运行结果如下:
1的内存地址: 140735385801536
a的内存地址: 140735385801536
b的内存地址: 140735385801536
a的内存地址: 140735385801568
b的内存地址: 140735385801536
分隔符: ******************************
a的内存地址是:140735385801888
12的内存地址是:140735385801888
None
分隔符: ****************************** 以下是列表的内存地址引用示例
aa的内存地址: 2397261161032
aa的内存地址: 2397261161032
aa的内存地址: 2397261161032
aa的内存地址: 2397261161096
分隔符: ****************************** 以下是字典的内存地址引用示例
a1的内存地址: 2397261637456
{'name': 'lisa'}
a1的内存地址: 2397261637456
{}
a1的内存地址: 2397261637456
a1的内存地址: 2397261637600
四、图片示例如下:
标签: #python变量内存地址