热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python变量存在于内存中吗_python中变量内存图:

可变数据类型:值发生改变时,内存地址不变,即id不变,证明在改变原值不可变类型:值发生改变时,内

可变数据类型:值发生改变时,内存地址不变,即id不变,证明在改变原值

不可变类型:值发生改变时,内存地址也发生改变,即id也变,证明是没有在改变原值,是产生了新的值

数字类型:

>>> x = 10

>>> id(x)

1830448896

>>> x = 20

>>> id(x)

1830448928

# 内存地址改变了,说明整型是不可变数据类型,浮点型也一样

字符串

>>> x = "Jy"

>>> id(x)

938809263920

>>> x = "Ricky"

>>> id(x)

938809264088

# 内存地址改变了,说明字符串是不可变数据类型

列表:

>>> list1 = ['tom','jack','egon']

>>> id(list1) 486316639176

>>> list1[2] = 'kevin'

>>> id(list1) 486316639176

>>> list1.append('lili')

>>> id(list1) 486316639176 # 对列表的值进行操作时,值改变但内存地址不变,所以列表是可变数据类型

元组

>>> t1 = ("tom","jack",[1,2])

>>> t1[0]='TOM' # 报错:TypeError

>>> t1.append('lili') # 报错:TypeError # 元组内的元素无法修改,指的是元组内索引指向的内存地址不能被修改

>>> t1 = ("tom","jack",[1,2])

>>> id(t1[0]),id(t1[1]),id(t1[2]) (4327403152, 4327403072, 4327422472)

>>> t1[2][0]=111 # 如果元组中存在可变类型,是可以修改,但是修改后的内存地址不变 >>> t1 ('tom', 'jack', [111, 2])

>>> id(t1[0]),id(t1[1]),id(t1[2]) # 查看id仍然不变 (4327403152, 4327403072, 4327422472)

字典

>>> dic = {'name':'egon','sex':'male','age':18}

>>> >>> id(dic) 4327423112

>>> dic['age']=19

>>> dic {'age': 19, 'sex': 'male', 'name': 'egon'}

>>> id(dic) 4327423112 # 对字典进行操作时,值改变的情况下,字典的id也是不变,即字典也是可变数据类型

九 数据类型总结



推荐阅读
author-avatar
南和东
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有