可变数据类型&不可变数据类型
不同的变量在内存中有不同的存储空间,每个存储空间都有一个ID
>>> a = 32 >>> id(a) # 查看ID 1571185856 >>> b = a >>> id(b) 1571185856
声明一个变量a,再把a的值赋值给b,得到a,b两个变量,但是ID相同,即指向同一个内存地址,就像以前的人起名字,名、字、号。
那么对b重新赋值呢
>>> b = 33 >>> id(b) 1571185888 >>> id(a) 1571185856
a还是原来的ID,但是b变了。他把名字改了,但是另外一个人恰好又起了这个名字。这两个名字指的就是两个人了。
下面进入正题,什么是可变数据类型呢?变量的值改变但是ID不变,反之则是不可变数据类型
可变数据类型:列表、字典、集合
>>> name_list = ['alex', 'mary'] >>> id(name_list) 2463315069192 >>> name_list[0] = ['eric'] >>> id(name_list) 2463315069192 >>> name_list.append('jake') >>> name_list [['eric'], 'mary', 'jake'] >>> id(name_list) 2463315069192
>>> person = {'name': 'alex', 'age': 24} >>> id(person) 2463314404192 >>> person['gender'] = 0 >>> person {'name': 'alex', 'age': 24, 'gender': 0} >>> id(person) 2463314404192