在Python中,数据类型可以分为可变类型(mutable)和不可变类型(immutable)。这两种类型的主要区别在于它们的值是否可以在创建后被修改。
不可变类型(Immutable)不可变类型的对象一旦创建,其值就不能被改变。如果需要修改,实际上是创建了一个新的对象。常见的不可变类型包括:
数字类型:
int(整数)float(浮点数)complex(复数)字符串:
str(字符串)元组:
tuple(元组)冻结集合:
frozenset(冻结集合)布尔值:
bool(布尔值)可变类型(Mutable)可变类型的对象可以在创建后被修改。常见的可变类型包括:
列表:
list(列表)字典:
dict(字典)集合:
set(集合)字节数组:
bytearray(字节数组)示例以下是一些示例,展示了不可变类型和可变类型的区别:
不可变类型示例# 整数是不可变的 a = 10 print(id(a)) # 输出对象的内存地址 a = a + 1 print(id(a)) # 新的内存地址,因为整数是不可变的 # 字符串是不可变的 s = "Hello" print(id(s)) # 输出对象的内存地址 s = s + " World" print(id(s)) # 新的内存地址,因为字符串是不可变的 # 元组是不可变的 t = (1, 2, 3) print(id(t)) # 输出对象的内存地址 t = t + (4, 5) print(id(t)) # 新的内存地址,因为元组是不可变的可变类型示例
# 列表是可变的
lst = [1, 2, 3]
print(id(lst)) # 输出对象的内存地址
lst.append(4)
print(id(lst)) # 相同的内存地址,因为列表是可变的
# 字典是可变的
d = {"a": 1, "b": 2}
print(id(d)) # 输出对象的内存地址
d["c"] = 3
print(id(d)) # 相同的内存地址,因为字典是可变的
# 集合是可变的
s = {1, 2, 3}
print(id(s)) # 输出对象的内存地址
s.add(4)
print(id(s)) # 相同的内存地址,因为集合是可变的 通过这些示例,你可以看到不可变类型在修改时会创建新的对象,而可变类型则可以在原地修改。
网友回复
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?
python如何实现基于http隧道加密的正向代理服务?
有没有有专门针对 UI 界面截图进行智能标记(Set-of-Mark, SoM) 的开源库和工具?
如何用python实现Set-of-Mark (SoM) 技术?
python如何截取windows指定应用的窗口截图,不用管窗口是不是在最前面?
linux能不能给rm删除命令增加回收站功能,可恢复被删文件?
bfwsoa如何在命令行中执行控制器动作器方法?
RAG(检索增强生成)和 KG(知识图谱)有啥不同?
KVM硬件是啥?


