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

Python对于可变对象和不可变对象的理解(主要理解代码中的注释)

可变对象

列表(list),字典(dict),集合(set),字节数组(bytearray)

不可变对象

整数(int),浮点数(float),字符串(str),元组(tuple),布尔值(bool)


Python代码(主要看注释的解释)

a = [[0]] * 10  # 列表中的每个元素(列表)都是对同一对象的内存地址的引用, 修改其中一个, 其他元素也会被修改
b = [[0] for _ in range(10)]  # 初始化10个独立的元素(列表)对象, 10个元素对象互不影响
c = [0] * 10  # 列表中的每个元素都是对同一对象的内存地址的引用, 但是元素是int,  不可变对象, 所以修改后相当于修改了int的引用, 其他元素不受影响
print(f'a: {a}')
print(f'b: {b}')
print(f'c: {c}')
a[0][0] = 1
b[0][0] = 1
c[0] = 1
print(f'a: {a}')
print(f'b: {b}')
print(f'c: {c}')

输出:

a: [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
b: [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
c: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
a: [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
b: [[1], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
c: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
http://www.xdnf.cn/news/6211.html

相关文章:

  • Unity 小提示与小技巧
  • 【GESP真题解析】第 4 集 GESP 一级 2023 年 3 月编程题 1:每月天数
  • 创建对象
  • [Vue3]语法变动
  • 3D Gaussian Splatting 查看工具 splatviz
  • 案例 ss
  • linux-信号保存和处理
  • linux-进程信号捕捉
  • 继续预训练 LLM ——数据筛选的思路
  • Linux重定向与缓冲区
  • AI时代的弯道超车之第七章:如何用AI赋能创业?
  • 缺乏自动化测试,如何提高测试效率
  • 酒店旅游类数据采集API接口之携程数据获取地方美食品列表 获取地方美餐馆列表 景点评论
  • CodeBuddy Craft,我的编程搭子
  • element基于表头返回 merge: true 配置列合并
  • Oracle版本、补丁及升级(12)——补丁及补丁集
  • REVERSE学习笔记(攻防世界xxxorrr)
  • 【Java学习笔记】==运算符
  • 解决常见数据库问题:保障数据安全与稳定的全方位指南
  • 模板源码建站、定制建站和SaaS 建站有什么区别?企业建站应该怎么选?
  • C++引用编程练习
  • XILINX-DDR4-自定义componet(x8)-之一
  • 六西格玛觉醒:一场数据思维的启蒙运动​
  • 【江苏省】《信息技术应用创新软件适配改造成本评估规范》(DB32/T 4935-2024)-标准解读系列
  • 【Linux Nano Vim快捷键大全】
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的康复训练机器人技术方案‌
  • Linux下批量提取子文件夹文件到当前目录
  • libmemcached库api接口讲解二
  • 股指期货套期保值怎么操作?
  • 【Linux】shell内置命令fg,bg和jobs