博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中的赋值与拷贝(浅拷贝与深拷贝)
阅读量:5110 次
发布时间:2019-06-13

本文共 635 字,大约阅读时间需要 2 分钟。

1.赋值与拷贝

直接赋值(b=a)是传引用,b改动a也会改动.

a = [1, 2, 3, 4]b = ab[1] = 999print(a, b)#[1, 999, 3, 4] [1, 999, 3, 4]

 

b=a.copy()或者b=a[:]是传值,b改动不影响a.

a = [1, 2, 3, 4]b = a.copy()b[1] = 999print(a, b)#[1, 2, 3, 4] [1, 999, 3, 4]
a = [1, 2, 3, 4]b = a[:]b[1] = 999print(a, b)#[1, 2, 3, 4] [1, 999, 3, 4]

 

2.浅拷贝与深拷贝

b=a.copy()和b=a[:]都是浅拷贝,也就是只有第一层是拷贝(传值),更深的层还是传引用.

copy模块的deepcopy函数可以实现深拷贝(每一层都是传值).

import copya = [1, 2, 3, [1, 2, 3]]c = copy.deepcopy(a)c[3][1] = 999print(a, c)#[1, 2, 3, [1, 2, 3]] [1, 2, 3, [1, 999, 3]]b = a[:]b[3][1] = 999print(a, b)#[1, 2, 3, [1, 999, 3]] [1, 2, 3, [1, 999, 3]]

 

转载于:https://www.cnblogs.com/zywscq/p/10699710.html

你可能感兴趣的文章
(转)Android之发送短信的两种方式
查看>>
字符串处理
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
获得进程可执行文件的路径: GetModuleFileNameEx, GetProcessImageFileName, QueryFullProcessImageName...
查看>>
证件照(1寸2寸)拍摄处理知识汇总
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
Python入门-函数
查看>>
[HDU5727]Necklace(二分图最大匹配,枚举)
查看>>
距离公式汇总以及Python实现
查看>>
设计模式之装饰者模式
查看>>
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>