Python可变数据类型和不可变数据类型
不可变数据类型包括:
整型、浮点型、字符串类型和元组
它不允许变量的值发生变化,如果改变了变量的值,相当于新建了一个对象;如果多个变量的值相同,该值在计算机内存中也只有一个内存地址
>>> a = 1 >>> print(id(a)) 140708039196944 >>> b = 1 >>> print(id(b)) 140708039196944 >>> b = 2 >>> print(id(b)) 140708039196976 >>>
当你创建a = 1整形对象,用a去引用它,内存中的对象1是不变的;
当执行b = 1时,只是重新进行引用,但是内存占用对象1是不变的;
当 b = 2 时,是创建了对象2,用b 引用,如果1对象没有被其他引用就会被回收。
可变数据类型包括:
列表和字典
它允许变量的值发生变化,如果对变量进行操作并改变了变量的值,程序不会新建一个对象,变量的值的内存地址也不会变化;
如果多个变量的值相同,每个变量的值的内存地址各不相同。
>>> a = [1,2,3] >>> print(id(a)) 1396522112008 >>> a = [1,2,3] >>> print(id(a)) 1396556182472 >>> a.insert(0,0) >>> print(a) [0, 1, 2, 3] >>> print(id(a)) 1396556182472 >>>
a.当你创建了 a= [1,2,3]列表对象之后,用a引用,内存地址是“1396522112008”;
b.当你再次创建了a = [1,2,3]列表对象之后,用a引用,内存地址是 “1396556182472", 不难发现,虽然他们的值相等,但是他们的内存对象不等,就 说明是创建了两个不同的对象;
c.当我们对列表进行insert操作,然后再输出内存地址之后发现,内存地址并没 有变。