Python中的引用和拷贝实例解析

作者:想吃手抓饼 时间:2022-02-26 00:59:13 

这篇文章主要介绍了python中的引用和拷贝实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一.引用


a = ['a', 'b', 'c']
b = a
print(id(a))
print(id(b))
135300560
135300560

可以看到,变量a 和 b 的 id是完全一样的,这就说明a和b是同时指向内存的同一个区域的,即b随a的变化而变化.

Python中的引用和拷贝实例解析


a = ['a', 'b', 'c']
b = a
a[1] = 'd'
print(b)
b[2] = 'e'
print(a)

['a', 'd', 'c']
['a', 'd', 'e']

二.浅拷贝

浅拷贝只是复制了的父对象,即复制后的变量和复制前的子对象还是指向同一个对象

浅拷贝可以写为 copy.copy(obj) 或者 obj.copy()


import copy
a = ['a', 'b', ['c', 'd', 'e']]
b = copy.copy(a)
a.append('e')
print(b)
a[0] = 'g'
print(b)
a[2].append('f')
print(b)
['a', 'b', ['c', 'd', 'e']]
['a', 'b', ['c', 'd', 'e']]
['a', 'b', ['c', 'd', 'e', 'f']]

画个图来理解就是如下:

Python中的引用和拷贝实例解析

当只有a元素的子元素里的元素有变化时,b才会引起改变

三.深拷贝

深拷贝就比较好理解了,它相当于开辟了一个新空间是新指针指向新的空间,无论原对象怎么变化,新对象都不变


import copy
a = ['a', 'b', ['c', 'd', 'e']]
b = copy.deepcopy(a)
a.append('e')
print(b)
a[0] = 'g'
print(b)
a[2].append('f')
print(b)
['a', 'b', ['c', 'd', 'e']]
['a', 'b', ['c', 'd', 'e']]
['a', 'b', ['c', 'd', 'e']]

来源:https://www.cnblogs.com/liangweijiang/p/11816355.html

标签:python,引用,拷贝
0
投稿

猜你喜欢

  • python 中的@运算符使用

    2023-10-24 22:23:46
  • Python使用Selenium爬取淘宝异步加载的数据方法

    2021-05-17 05:31:57
  • JavaScript中实现字符串的取左取右(实现left和right功能)

    2009-07-20 12:39:00
  • 解决jupyter notebook import error但是命令提示符import正常的问题

    2022-08-19 22:10:30
  • 快速一键生成Python爬虫请求头

    2022-05-21 01:00:53
  • ASP MSSQL存储过程的实现小例

    2011-04-06 11:02:00
  • keras自定义损失函数并且模型加载的写法介绍

    2023-06-23 04:00:30
  • Python游戏开发之Pygame使用的最全教程分享

    2021-01-11 05:45:55
  • Ranorex通过Python将报告发送到邮箱的方法

    2021-08-17 03:57:43
  • 详解Python中的进程和线程

    2021-10-06 21:49:03
  • Blender Python编程实现批量导入网格并保存渲染图像

    2021-06-09 04:21:20
  • python3代码中实现加法重载的实例

    2023-07-13 12:01:31
  • python selenium在打开的浏览器中动态调整User Agent

    2022-09-26 13:41:59
  • 用vscode开发python的步骤详解

    2023-11-10 11:39:22
  • 关于DOM元素定位属性的深入学习

    2008-04-02 11:46:00
  • 用python实现的可以拷贝或剪切一个文件列表中的所有文件

    2022-09-11 11:28:23
  • Python 基于FIR实现Hilbert滤波器求信号包络详解

    2023-07-13 01:31:47
  • 一位网友的DIV CSS编码笔记——XieBiji

    2008-09-12 12:22:00
  • Mootools 1.2教程(23)——滑动效果(Slide)

    2009-03-04 12:33:00
  • 深入了解Python Opencv数据增强

    2023-10-27 05:00:01
  • asp之家 网络编程 m.aspxhome.com