当前位置: 首页 > news >正文

在Python中,不可变(immutable)数据类型是指一旦创建后,其内容不能被修改的数据类型

在Python中,不可变(immutable)数据类型是指一旦创建后,其内容不能被修改的数据类型。

  • A.list:可变(mutable),可以添加、删除、修改元素;
  • B.dict:可变,键值对可以增删改;
  • C.set:可变,元素可以添加或移除;
  • D.tuple:✅ 不可变,创建后不能修改其元素(包括增、删、改),若包含可变对象(如列表),该对象自身可变,但tuple的引用不可变。

因此,正确答案是:D. tuple

# 示例验证t=(1,2,3)# t[0] = 99 # ❌ TypeError: 'tuple' object does not support item assignment# t.append(4) # ❌ AttributeError: 'tuple' object has no attribute 'append'# 对比 listl=[1,2,3]l[0]=99# ✅ 允许l.append(4)# ✅ 允许

是的,即使元组中包含一个列表,整个元组本身仍然被视为不可变类型

✅ 原因:
“不可变”指的是元组对象自身的结构和元素引用不可更改——即不能增删元素、不能对元组索引赋值、不能调用修改方法(如append())。但若元组中某个元素本身是可变对象(如listdictset),该嵌套对象的内容仍可被原地修改,因为元组只保存对其的引用,不控制其内部状态。

⚠️ 注意:这不违背元组的不可变性,因为元组并未“改变自身引用”,只是它所引用的可变对象发生了变化。

🔍 示例说明:

t=(1,[2,3],"hello")print(t)# (1, [2, 3], 'hello')# ✅ 允许:修改嵌套列表的内容(列表自身可变)t[1].append(4)print(t)# (1, [2, 3, 4], 'hello') —— 元组内容看似变了,但元组对象未被“重新赋值”或“结构调整”# ❌ 禁止:试图替换元组中的元素# t[1] = [5, 6] # TypeError: 'tuple' object does not support item assignment# ❌ 禁止:试图给元组添加元素# t += (99,) # 这会创建新元组,原元组不变;原t对象地址已变(若重新赋值)# 验证身份(id):original_id=id(t)t=t+(99,)# 创建新元组 → 新idprint(id(t)==original_id)# False → 原元组未被修改,只是变量指向了新对象

📌 关键结论:

  • 元组的不可变性是浅层的(shallow immutability),仅保证其直接元素的引用不可变;
  • 不保证嵌套可变对象的深层内容不可变;
  • 正因如此,含可变对象的元组不能作为字典的键(除非该元组在生命周期内其嵌套可变对象未被修改,但Python不检查运行时内容,故仍会报错):
d={}# d[t] = "value" # ❌ TypeError: unhashable type: 'list' —— 因为t含list,整体不可哈希

http://www.jsqmd.com/news/987734/

相关文章:

  • 2026 香奈儿名牌包包回收规则,无锡门店回收对哪些款式更热忠 - 奢侈品回收评测
  • 分公司越来越多,网络越用越卡?教你用“智能网关”把企业专线成本砍掉50%
  • 宁波精装房石材改造指南:不砸不拆怎么提升质感(2026版) - 宁波融诚石业
  • YOLOv5 实战:不修改 `detect.py`,让检测结果图中的置信度随机显示为自己想要的
  • 零基础玩转大数据!800万条浏览器行为数据ETL实战,从零搞定可视化大屏底层数据
  • 2026年 膜分离设备厂家推荐:辽宁膜分离工艺与管式膜分离系统,青花椒油分离/食品级膜分离/医药膜分离技术优选指南 - 品牌发掘
  • 2026上海百达翡丽回收价格怎么算?全套、单表、成色差价明细解析 - 奢侈品回收评测
  • 多 Agent 协作的“终极难题”:如何解决冲突、分歧与无限循环?
  • 素材去水印实用技巧:按场景选择工具,兼顾效率与画质
  • Web分布式网站架构之-Squid缓存【20260608】005篇-【传统代理】
  • 知识图谱 Graph Rag 方法横向对比
  • 伺服电机仿真(3):PMSM在三相静止坐标系下的数学模型
  • 系统规划与管理师选老师:案例不好的人,需要什么样的老师?
  • 清理重复文件释放C盘空间的工具
  • 新装修的石材为什么开裂?5大原因+预防措施(2026版) - 宁波融诚石业
  • 2026窑炉气体分析系统选购指南:全国优质厂家排名与实战经验分享 - 品研笔录
  • 【UE5】雷达覆盖区域效果
  • 2026年 黑龙江铝塑铝门窗/哈尔滨保暖铝塑铝门窗推荐榜:高密封、抗老化、高性价比家装与老旧小区改造优选 - 品牌发掘
  • 闲置多年奢侈品腕表,2026无锡手表回收如何养护价值更高 - 奢侈品回收评测
  • Python之encrypti0n包语法、参数和实际应用案例
  • Web分布式网站架构之-Squid缓存【20260609】squid配置文件详解001篇
  • SQL/NoSQL数据库为何成为TVA的记忆系统(7)
  • 如何利用 OpenCV 将图像显示在对话框窗口上
  • 2026年苏州定制家具厂家推荐榜:酒店餐饮、适老化、医养机构与养老院圆角防撞星级配套家具精选 - 品牌发掘
  • 网络请求基础:使用http模块发起GET/POST请求(12)
  • 深圳卡地亚回收避坑要点|先查资质、再看报价、最后结算 - 奢侈品回收测评
  • 全固态电池技术路线解析,硫化物、氧化物、聚合物谁主沉浮?
  • 伺服电机仿真(4):PMSM在d-q旋转坐标系下的状态方程与等效电路
  • Web分布式网站架构之-Squid缓存【20260609】squid配置文件详解002篇
  • 数据分析进阶——经营分析指标字典