Python集合内的元素是可变的吗?Python数据类型解析
罗西汉
优草派
学习过python的小伙伴都知道python之中有好几种基础数据类型,但是对于这些数据类型的处理机制却不是很了解。那么下文将会来介绍一下python可变类型和不可变类型的相关知识,以及对这两个类型的解析。
一、集合可变吗
python之中集合是可变类型,它里面的元素也都是可变的,以一个示例来举例:
s = {1,'d','34','1',1} print(s,type(s),id(s)) s.add('djx') print(s,type(s),id(s)) result: {'d', 1, '34', '1'} {1, '34', 'djx', '1', 'd'}
在上面这个例子之中的变量s是一个集合对象,那么对这个集合进行添加等操作改变的都是集合本身的值而不是副本的值。
二、可变和不可变类型
python数据类型中的数字、字符串、元组是不可变的数据类型,列表、字典和集合是可变的数据类型。划分他们是否为可变和不可变的依据不是按照能否对这个数据类型进行增删改查的操作,而是看在进行添加删除元素或者是调用函数时这个数据类型的指针是否被改变了。
python是面向对象的语言,在python之中所有声明出来的对象都是以指针的形式存储在内存之中的。在对集合、列表等可变数据类型进行操作时虽然他们的元素改变了,但是在内存之中的指针还是指向原来的对象。
但是在对字符串、数字等不可变数据类型进行操作时,他们通常返回的会是一个新的对象。例如字符串str调用lower函数是虽然还可以使用str这个变量去接收结果,但是在内存之中指针指向的对象已经是新返回的字符串对象了。
以上就是关于python可变和不可变数据类型的解析了,希望对你有所帮助。
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。