基本数据类型总结

一.可变和不可变类型

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

>>> x=5
>>> id(x)
140722754799392
>>> x=6
>>> id(x)
140722754799424#内存地址改变了,说明整形是不可变类型,浮点型也一样

字符串类型:

>>> str1='大傻子吗'
>>> id(str1)
2368083743248
>>> str1='臭妹妹呀'
>>> id(str1)
2368083743056#内存地址改变了,说明字符串也是不可变类型

列表类型:

>>> 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也是不变,即字典也是可变数据类型

集合类型:

>>> set1={1,2,3,5,6}
>>> id(set1)
2368083717024
>>> set1={5,6,58,3,}
>>> id(set1)
2368083716800#所以说集合也是不可变类型

猜你喜欢

转载自www.cnblogs.com/lqb666/p/12482779.html
今日推荐