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

网站运营要会什么技术it外包服务平台

网站运营要会什么技术,it外包服务平台,微信小程序在哪里登录,成品网站源码78w78使用方法文章目录1. 赋值 ()赋值的特点:2. 浅拷贝 (copy(),Shallow Copy)底层原理创造浅拷贝的方法3. 深拷贝 (deepcopy(),Deep Copy)底层原理深拷贝的特点:拷贝方式的使用场景综合示例相关文章推荐在Python中,理解赋值、浅拷贝…

文章目录

  • 1. 赋值 (=)
    • 赋值的特点:
  • 2. 浅拷贝 (copy(),Shallow Copy)
    • 底层原理
    • 创造浅拷贝的方法
  • 3. 深拷贝 (deepcopy(),Deep Copy)
    • 底层原理
    • 深拷贝的特点:
  • 拷贝方式的使用场景
  • 综合示例
  • 相关文章推荐

在Python中,理解赋值、浅拷贝和深拷贝的区别对于避免意外的数据修改非常重要。

1. 赋值 (=)

赋值操作只是创建了一个新的引用,指向同一个对象。

a = [1, 2, [3, 4]]
b = a  # 赋值操作a[0] = 10
print(b)  # 输出: [10, 2, [3, 4]] - b也跟着改变了

赋值的特点:

1、新变量和原变量指向同一个内存地址

2、修改其中一个会影响另一个

3、对于可变对象(列表、字典等)尤其需要注意

2. 浅拷贝 (copy(),Shallow Copy)

浅拷贝会创建一个新对象(顶层容器),但嵌套对象(子对象)的引用保持不变。新对象与原对象共享子对象的内存地址。修改子对象的值会影响原对象,但修改顶层容器的引用不会影响原对象。简单来说,浅拷贝会创建一个新对象,但只拷贝第一层内容,对于嵌套的对象仍然使用引用。

import copya = [1, 2, [3, 4]]
b = copy.copy(a)  # 浅拷贝a[0] = 10
print(b)  # 输出: [1, 2, [3, 4]] - b的第一层不受影响a[2][0] = 30
print(b)  # 输出: [1, 2, [30, 4]] - 嵌套列表被修改了

底层原理

1、浅拷贝仅复制顶层容器的结构,不会递归复制子对象。
2、新对象的每个元素是原对象元素的引用(即指向相同的内存地址)。

创造浅拷贝的方法

1、copy.copy()

2、列表的切片操作 list[:]

3、字典的 dict.copy() 方法

4、集合的 set.copy() 方法

5、构造函数

3. 深拷贝 (deepcopy(),Deep Copy)

深拷贝会创建一个完全独立的新对象,递归复制所有嵌套对象,确保新对象与原对象及其子对象无任何引用关系。修改新对象的任何层级都不会影响原对象。简单来说,深拷贝会递归地拷贝所有嵌套对象,创建一个完全独立的新对象。

底层原理

1、通过递归遍历原对象的所有层级,逐层复制每个子对象,生成全新的内存地址。
2、对于不可变对象(如整数、字符串),深拷贝可能直接引用原值(因为不可变对象无法修改)。
3、对于可变对象(如列表、字典),深拷贝会逐层复制,确保完全独立。

import copya = [1, 2, [3, 4]]
b = copy.deepcopy(a)  # 深拷贝a[0] = 10
a[2][0] = 30
print(b)  # 输出: [1, 2, [3, 4]] - b完全不受影响

深拷贝的特点:

1、创建完全独立的对象副本

2、修改原对象不会影响拷贝后的对象

3、对于嵌套结构特别有用

4、性能开销比浅拷贝大

拷贝方式的使用场景

1、赋值:当你确实需要共享同一个对象时

2、浅拷贝:当对象没有嵌套结构或你确实需要共享嵌套对象时

3、深拷贝:当需要完全独立的副本,特别是对象包含嵌套结构时

综合示例

import copyoriginal = [1, [2, 3], {'a': 4}]# 赋值
assigned = original# 浅拷贝
shallow_copied = copy.copy(original)# 深拷贝
deep_copied = copy.deepcopy(original)# 修改原始对象
original[0] = 10
original[1][0] = 20
original[2]['a'] = 40print("赋值后的:", assigned)        # 完全跟随变化
print("浅拷贝的:", shallow_copied)  # 第一层不变,嵌套对象变化
print("深拷贝的:", deep_copied)     # 完全不变

输出结果:

赋值后的: [10, [20, 3], {'a': 40}]
浅拷贝的: [1, [20, 3], {'a': 40}]
深拷贝的: [1, [2, 3], {'a': 4}]

相关文章推荐

相关文章1

http://www.dtcms.com/a/587983.html

相关文章:

  • 车子网站wordpress 素材站模板
  • 网站 概念设计中国小康建设网站
  • 可以做防盗水印的网站网页设计分为哪些板块
  • 湘潭做网站 去磐石网络建湖网站优化公司
  • 公司建一个网站广东手机网站制作电话
  • 优秀的摄影作品网站网站制作书籍推荐
  • 中文电商网站模板好看到让人久久不忘的电影
  • Java 类高级特性
  • 银川公司做网站咸阳网站建设方案
  • Python 错误类型
  • 中关村在线网站的建设网站建设空心正方形
  • 长沙网站排名优化费用四川建设网app
  • 设计图片免费素材网站网站文字不能编辑器
  • 如何自己做网站手机特定网站开发
  • 如何建立一个网站做网站协议书
  • 获取网站后台地址建站的步骤
  • 网站备案能查到什么东西网站建设公司dz000
  • 青岛网站营销推广网站备案照片怎么弄
  • h5网站价格方案网站开发 流程
  • 免费做h5的网站小程序制作开发平台
  • 重庆网站建设中心wordpress信用卡
  • 临清网站建设公司最近的新闻事件
  • 做散客机票的网站如何推广注册城乡规划师一年能挂多少钱
  • seo怎么做自己的网站玉环住房与城乡建设规划局网站
  • 自助建设网站软件软件公司薪酬绩效方案
  • 0基础网站搭建教程百度数据平台
  • 深度科技商业官方网站手机网站格式商城
  • 广州外贸营销型网站兰州起点网站建设
  • 网站建设方案对比分析报告seo谷歌外贸推广
  • 上网建站全国十大室内设计师