1.普通的赋值操作

def print_id(array):
ids = []
for ar in array:
ids.append(id(ar))
print (array, ids) a = [1, 'abc', [1, 2, 3]]
b = a
b[0] = 'a'
b[1] = 0
b[2] = [1, 3]
print_id(a)
print_id(b)

output:

(['a', 0, [1, 3]], [4399687320, 140283452869952, 4400308664])
(['a', 0, [1, 3]], [4399687320, 140283452869952, 4400308664])

b = a操作将a对象的地址赋值给b,两个对象的地址相同

2.浅拷贝 copy.copy()

a = [1, 'abc', [1, 2, 3]]
copy_a = copy.copy(a)
copy_a[0] = 'a'
copy_a[1] = 0
copy_a[2] = [1, 3]
print_id(a)
print_id(copy_a)

output:

[1, 'abc', [1, 2, 3]]
['a', 0, [1, 3]]

copy_a = copy.copy(a) 仅仅是把int,float,str类型的数据进行拷贝,重新开辟地址,对于内层的list,dict直接把原有的地址给新的对象

python-拷贝的更多相关文章

  1. Python: 拷贝函数签名

    使用场景有很多,比如C API在Python下很多都变成了(*args, **kwargs)的参数,这时候可能需要为其添加一个更严格签名来约束参数. 查了许多资料,能有效的拷贝函数签名貌似只能通过动态 ...

  2. Python拷贝(深拷贝deepcopy与浅拷贝copy)

    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1.copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2.copy.deepco ...

  3. Python拷贝及多进程与类的问题

    最近写python写的尤其不顺利,更多的debug,逐渐的深入,产出却比较少.应该是个瓶颈期,坚持坚持,厚着脸皮也要坚持下去. 0x00 拷贝问题 程序中涉及到多进程和协程,大致的模型是开了2+个进程 ...

  4. python拷贝文件小程序(windows)

    #!/usr/bin/python import os source='F:\\lh.jpg' target='E:\\' copy_command="xcopy %s %s"%( ...

  5. Python [拷贝copy / 深度拷贝deepcopy] | 可视化理解

    Python 是一门面向对象的语言, 在Python一切皆对象. 每一个对象都有由以下三个属性组成: ------------------------------------------------- ...

  6. python 拷贝某个文件到另一个目录下

    python的shutil包含有很多文件拷贝的函数,各种各样的,要实现我文章题目的目的,使用shutil.copy函数即可 shutil.copy(文件的路径,另一个目录)

  7. Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

    1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deepcopy 深拷贝 拷贝对象及其子对象 一个很好的例子: # -*-coding:utf-8 -*- ...

  8. python 拷贝文件夹下所有的文件到指定文件夹(不包括目录)

    1.随便简单些写了一下.直接粘结代码,只是简单的实现一下,还很多需要完善和扩展的地方,比如忽略掉后缀文件,删除文件 如果排除的某些的话可以用: sourceF.find('.后缀')>0 2.注 ...

  9. python拷贝文件到多个文件夹

    主要用来做数据备份,每次用完以后再跑一次脚本,又可以将文件夹下的所有文件拷贝到指定的文件夹内 import os,sys,shutil; class cur_env: path = sys.path[ ...

  10. Python拷贝文件脚本

    author : headsen chen date : 2018-12-06  17:56:58 copy_file.py #!/usr/bin/env python from sys import ...

随机推荐

  1. Linux系统minicom命令详解

    minicom 功能说明:调制解调器通信程序 语 法:minicom [-8lmMostz][-a<on或0ff>][-c<on或off>][-C<取文件>][-d ...

  2. 用php获取js变量的值

    <script type="text/javascript"> var t1 = "fff"; var t2 = "<?php ec ...

  3. js、jquery、jsp的区别

    1.JSP全称是java server page    JS全称是javaScript 2.最主要的区别是运行位置不同. JSP运行在后台服务器上,混合在HTML中的java程序段用于控制HTML的动 ...

  4. Solidity合约间的调用-1

    当调用其它合约的函数时,可以通过选项.value(),和.gas()来分别指定,要发送的ether量(以wei为单位),和gas值. pragma solidity ^; contract InfoF ...

  5. Android开发之页面跳转传递list集合

    这篇随笔这里详细记录两个activity之间如何传递list集合中的数据. 1.首先要对javabean进行序列化处理,即实现Serializable. package com.anhua.bean; ...

  6. springboot中使用ContextLoaderListener.getCurrentWebApplicationContext();获取WebApplicationContext为空问题

    WebApplicationContext applicationContext = ContextLoaderListener.getCurrentWebApplicationContext(); ...

  7. js原生的节点操作API

    // yi获取元素节点 //一 :过id的方式( 通过id查找元素,大小写敏感,如果有多个id只找到第一个) document.getElementById('div1'); // 通过类名查找元素, ...

  8. 1.编译cartographer ROS

    1.系统要求 cartographer ROS与Cartographer要求一样,即 64-bit, modern CPU (e.g. 3rd generation i7) 16 GB RAM Ubu ...

  9. 5阶m序列

    void echo32(int m) { printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n ...

  10. GBDT(MART) 迭代决策树详解

    在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Re ...