😊 python 可变与不可变类型

可变类型与不可变类型的本质区别
当变量指向的值发生变化时,如果变量的地址发生变化,则该变量是不可变类型; 如果变量的地址没有发生变化,则该变量是可变类型
python中内置类型的可变性
数值: 不可变
字符串: 不可变
元组: 不可变
列表: 可变
字典: 可变
set: 可变

number = 3
id_1 = id(number)
number = 4
id_2 = id(number)
# type(number)=<class 'int'>,id_1 == id_2:False
print(f'type(number)={type(number)},id_1 == id_2:{id_1 == id_2}')  # 不可变类型

string = 'str'
id_1 = id(string)
string = 'str1'
id_2 = id(string)
# type(string)=<class 'str'>,id_1 == id_2:False
print(f'type(string)={type(string)},id_1 == id_2:{id_1 == id_2}')  # 不可变类型
# --------------------
# 以下为可变类型
# -------------------
tup = (1, 2, [3])
id_1 = id(tup)
tup[2].append(4)
id_2 = id(tup)
# type(tup)=<class 'tuple'>,id_1 == id_2:True
print(f'type(tup)={type(tup)},id_1 == id_2:{id_1 == id_2}')  # 可变类型
li = [1, 2, 3]
id_1 = id(li)
li.append(4)
id_2 = id(li)
# type(li)=<class 'list'>,id_1 == id_2:True
print(f'type(li)={type(li)},id_1 == id_2:{id_1 == id_2}')  # 可变类型
dic = {'name': 'zs'}
id_1 = id(dic)
dic['age'] = 18
id_2 = id(dic)
# type(dict)=<class 'list'>,id_1 == id_2:True
print(f'type(dict)={type(li)},id_1 == id_2:{id_1 == id_2}')  # 可变类型
s = {1, 2, 3}
id_1 = id(s)
s.add(5)
id_2 = id(s)
# type(s)=<class 'set'>,id_1 == id_2:True
print(f'type(s)={type(s)},id_1 == id_2:{id_1 == id_2}')  # 可变类型
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容