python copy

import copy
a = [1, 2, 3, 4, [‘a‘, ‘b‘]]  #原始对象

b = a  #赋值,传对象的引用
c = copy.copy(a)  #对象拷贝,浅拷贝
d = copy.deepcopy(a)  #对象拷贝,深拷贝

a.append(5)  #修改对象a

print a

[1, 2, 3, 4, [‘a‘, ‘b‘], 5]

>>> print b

[1, 2, 3, 4, [‘a‘, ‘b‘], 5]

>>> print c

[1, 2, 3, 4, [‘a‘, ‘b‘]]

>>> print d

[1, 2, 3, 4, [‘a‘, ‘b‘]]

a[4].append(‘c‘)  #修改对象a中的[‘a‘, ‘b‘]数组对象

>>> print a

[1, 2, 3, 4, [‘a‘, ‘b‘, ‘c‘], 5]

>>> print b

[1, 2, 3, 4, [‘a‘, ‘b‘, ‘c‘], 5]

>>> print c

[1, 2, 3, 4, [‘a‘, ‘b‘, ‘c‘]]

>>> print d

[1, 2, 3, 4, [‘a‘, ‘b‘]]

深copy是复制了之前的列表,两个列表从此以后就独立的两个列表了

浅copy只是独立了一层的列表

深copy和潜copy的问题

时间: 2024-08-05 11:00:28

python copy的相关文章

python copy模块

python copy模块 copy模块用于对象的拷贝操作 该模块只提供了两个主要的方法: copy.copy:浅复制 copy.deepcopy:深复制 直接赋值,深拷贝和浅拷贝的区别 直接赋值:简单地拷贝对象的引用,两个对象的id相同.就是对象的引用(别名),就是给当前内存中的对象增加一个“标签”而已.通过使用内置函数 id() ,可以看出指向内存中同一个对象. 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象.即浅复制只复制对象本身,没有复制该对象所引用的对象.A shallow

Python copy对象(copy与deepcopy)

Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deepcopy 深拷贝 拷贝对象及其子对象 看下面的一个实例 import copy init = [1, 2, 3, 4, ['a', 'b']] #原始对象 assign = init #赋值,传对象的引用 cp = copy.copy(init) #对象拷贝,浅拷贝 dcp = copy.deepc

python copy & deepcopy

摘要: 1 python中的一切事物皆为对象,并且规定参数的传递都是对象的引用. 2  python参数传递都是“传对象引用”方式.实际上相当于c++中传值和传引用的结合. 3 如果函数收到的是可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象.不可变对象(比如数字.字符或者元组)的引用,就不能直接修改原始对象——相当于通过“传值”来传递对象. >>> a = 1 >>> b = 1 >>> id(a) 1510

利用python copy目录下所有特定后缀的文件

python 太好用了 这一次我想将子目录先所有jpg和pdf文件都copy出来放到一个文件夹,在网上找了个copy全部文件的代码修改一下就搞定了 import os import shutil source_path = os.path.abspath(r'F:\tool\') target_path = os.path.abspath(r'D:\putout') if not os.path.exists(target_path): os.makedirs(target_path) if o

python copy 文件,图片等..

import shutil import os # files = os.listdir('C:/Users/kaige/Desktop/四元玉鉴/FORGED-full - 副本/693-693') # base_path = 'C:/Users/kaige/Desktop/四元玉鉴/FORGED-full - 副本/693-693/' # -------------------- # 获取文件名称 files = os.listdir('C:/Users/kaige/Desktop/四元玉鉴

多进程copy文件

from multiprocessing import Pool,Manager  import os,time def copyFileTask(fileName,oldFolderName,newFolderName,queue): fr = open(oldFolderName+"/"+fileName,'r',encoding='UTF-8') fw = open(newFolderName+"/"+fileName,'w',encoding='UTF-8'

python深拷贝和浅拷贝之简单分析

title: python 深拷贝和浅拷贝 tags: python,copy,deepcopy grammar_cjkRuby: true --- python 深拷贝和浅拷贝 python的变量的赋值都是引用 把一个变量赋值给一个变量,不是拷贝这个对象,而是拷贝这个变量的引用 直接赋值 传递的是这个变量的引用 浅拷贝 拷贝的是这个变量的引用,会产生新的对象 浅拷贝会产生一个新的对象,但是浅拷贝的内容还是原有对象的引用 看下面的例子 浅拷贝 import copy a = [1, 2, 3,

centos下安装python2.7.1 以及装完后 yum 不能用的问题

转载自http://blog.163.com/[email protected]/blog/static/164767406201221614650717/ 由于CentOS的yum是采用的Python2.4.X进行开发的,所以不支持更高版本的python安装,所以需要进行手工的安装. 首先安装依赖包,运行如下命令 yum install -y gcc make yum install -y libxml2 yum install -y libxslt yum install -y pkgcon

import Tkinter的时候报错

在看到图形界面编程的时候,需要导入Tkinter模块,从而在解释器中进行import Tkinter,然后...报错如下: >>> from tkinter import *   Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "/usr/local/lib/python2.7/tkinter/__init__.py&quo