深浅拷贝--python(预习中随手写的。因为当时很无聊。。。)

需要知识准备,pyhton基本常识,python的小数据池概念。

深浅拷贝操作需要模块导入:import copy

emmm,对于python中的两种数据类型来说。

1、数字,字符串

2、列表,元祖,字典等

浅拷贝:a = copy.copy(b)

如果b是第一种数据类型。a,b的内存地址一致。

如果b是第二种数据类型,拷贝后,a与b的第一层内存地址不同。也就是说id(a) != id(b),但a,b内元素的内存地址依然一致。

深拷贝:a = copy.deepcopy(b)

如果b是第一种数据类型,拷贝后,ab内存地址一致。

如果b是第二种数据,拷贝后,a与b的各成内存地址都不同,但是a,b内的最小组成元素的内存地址依然一致。如a,b内层的数字,字符串类型。

原文地址:https://www.cnblogs.com/sbxlqswl/p/9837450.html

时间: 2024-08-07 03:53:49

深浅拷贝--python(预习中随手写的。因为当时很无聊。。。)的相关文章

python学习过程中随手写的测试脚本-test1.py

## 引用输入,并在引用输入时显示文字name = input('What is your name ')## name = 'stan' print('your name is', name ) ## /为精确除法,//为整除,只留整数部分,%为取余数print('10/3 =',10/3)print('10//3 =',10//3)print('10%3 =',10%3) ## 尝试使用中文print('中文') ## 定义并引用list数组,使用[]## 数组中输入负数为倒数开始计数tst

python学习过程中随手写的测试脚本-testloop.py

## 定义list数组lstrs = ['t1','t2','t3','t4']print('lstrs is',lstrs) i = 0## test for loopfor lstr in lstrs: print('lstrs[%d] is' % i,lstr ) i = i + 1print('end for loop') j = 0## test while loopwhile j <= 3: print('lstrs[%d] is' % j,lstrs[j] ) j = j + 1p

python学习过程中随手写的测试脚本-testds.py

## test for dictprint('==========start test dict==========')names = ['Aa', 'Bb', 'Cc']scores = [98, 76, 54]## d相当于做了一个map映射d = {'Aa': 98, 'Bb': 76, 'Cc': 54}print('d is',d) for name in names: print('%s is' % name,d[name] ) ## get可在查询不到数据时不返回错误,返回指定数值

python学习过程中随手写的测试脚本-testif.py

## 输入name##name = input('What is your name ')name = 'stan' ## test for if,elifif name == 'stan': print('1. yes , your are stan' ) print('here is if')elif name == 'vanees': print('2. not stan, you are vanees' ) print('here is elif')else: print('9. oth

深浅拷贝 python

原文:http://www.jb51.net/article/15714.htm 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象.2. copy.deepcopy 深拷贝 拷贝对象及其子对象一个很好的例子: import copya = [1, 2, 3, 4, ['a', 'b']]  #原始对象b = a  #赋值,传对象的引用c = copy.copy(a)  #对象拷贝,浅拷贝d = copy.deepcopy(a)  #对象拷贝,深拷贝a.append(5)

Python中的深浅拷贝详解

要说明Python中的深浅拷贝,可能要涉及到下面的一系列概念需要简单说明下: 变量-引用-对象(可变对象,不可变对象)切片-拷贝-浅拷贝-深拷贝 [变量-对象-引用] 在Python中一切都是对象,比如说: 3, 3.14, 'Hello', [1,2,3,4],{'a':1}...... 甚至连type其本身都是对象,type对象 Python中变量与C/C++/Java中不同,它是指对象的引用 单独赋值: 比如说: >>> a = 3 在运行a=3后,变量a变成了对象3的一个引用.在

Python中的深浅拷贝

Python中的深浅拷贝 前言:我们在了解深浅拷贝之前首先需要明白的一点知识 不可变类型数据:不可变类型即指当改变其内元素时,内存空间将会发生变化,比如常见的不可变类型有:str,boolean, int,tuple. temp = "哈哈哈" ret = temp.replace("哈", "嘿", 2) print(temp) # 哈哈哈 print(ret) # 嘿嘿哈 # 我们可以看到temp的值并没有发生改变,这就是为什么对str数据改

python中常用模块总概括(二)以及深浅拷贝简述

一,logging·模块 也称为日志模块,就是记录. 分为五个等级:类似于火情警报,等级越高事态越严重. debug日志,级别为10 info日志,级别为20 warning日志,级别为30 error日志,级别为40 critical日志,级别为50 四个对象: logger 对象:负责产生日志 filer 对象:过滤日志 handler对象:控制日志输出位置 format对象:控制日志规定的格式 logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,

python中的“赋值与深浅拷贝”

Python中,赋值与拷贝(深/浅拷贝)之间是有差异的,这主要源于数据在内存中的存放问题,本文将对此加以探讨. 1 赋值(添加名字) 赋值不会改变内存中数据存放状态,比如在内存中存在一个名为data的数据,此时若执行语句data_01 = data,则现在该份数据有了两个名称(data和data_01),其余都不发生改变,使用任何一个名称对数据进行操作,那么用另外一个名称拿数据时,数据会呈现之间发生的改变.示例如下: 图中,给列表分配了两个名称a与b,对a做改变时b会同样改变,对b做改变时a也会