python的可变类型和不可变类型

2019-06-07
此知识点是在学习pandas的apply函数中:如何利用applymap将str转化成int时王提到的问题。
可变类型:list dict
不可变类型:number str tuple bool
python中的不可变数据类型,即不允许变量的值原地发生变化,一但值发生了变化,则相当于新建了一个对象,id会变。
所以,可变类型:值变化,id不变化;不可变类型:值变化,id变化。

如何确定一种数据类型是可变的还是不可变的:
根据上面的介绍,只需在改变value值的同时,使用id()函数查看变量id是否变化即可。
number:

>>> id(num1)
140723828876336
>>> num1 = 9
>>> id(num1)
140723828876368

以上id发生了变化,所以number不可变。
str:

>>> a = 'huang'
>>> id(a)
2039740156144
>>> a = 'lin'
>>> id(a)
2039740157824

以上id发生了变化,所以str不可变。
tuple:
元组元素是无法修改的,所以元组不可变。
list:

>>> y = [1,'a',0.9]
>>> id(y)
2039739966088
>>> y[0] = 9
>>> y
[9, 'a', 0.9]
>>> id(y)
2039739966088

列表中的元素发生变化时,id未变,所以list可变。
dict:

>>> d = {'a':1,'b':2}
>>> id(d)
2039742751512
>>> d['a'] = 5
>>> d
{'a': 5, 'b': 2}
>>> id(d)
2039742751512

dict中的value发生变化时,id未变,所以dict可变。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容