博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python中list的拷贝问题
阅读量:5362 次
发布时间:2019-06-15

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

对于a=[1,2,3],以下方式等价:

  1. b = a[:]
  2. c = list(a)
  3. d = copy.copy(a)
  4. e = a*1 # 淫技

即拷贝a中元素的值到新的内存块

但是对于a中元素的值是地址的情况,依然会存在新的变量与旧的变量指向同一内存块的情况


f = copy.deepcopy(a)

完全递归拷贝a中元素的值到新的内存块,不存在地址拷贝的情况

>>> a = [[10],20]>>> b = a[:]>>> f = copy.deepcopy(a)>>> a.append(21)>>> a[0].append(21)>>> print(id(a),a)(4514549984, [[10, 21], 20, 21])>>> print(id(b),b)(4514551424, [[10, 21], 20])>>> print(id(f),f)(4514551496, [[10], 20])

转载于:https://www.cnblogs.com/chace/p/6692836.html

你可能感兴趣的文章
SQL语句的并集UNION,差集,交叉连接,交集JOIN
查看>>
Prim算法
查看>>
chrome 插件 版本报错
查看>>
jquery 不执行
查看>>
HDU 1238
查看>>
脑网络
查看>>
理解HTTP之keep-alive(转)
查看>>
写页面得来的体会
查看>>
计算机
查看>>
BZOJ4821 SDOI2017相关分析(线段树)
查看>>
ORA-00257: archiver error. Connect internal only, until freed
查看>>
POJ 3480 John [博弈之Nim 与 Anti-Nim]
查看>>
mysql安装
查看>>
WXSS学习
查看>>
android实验四201306114104彭得源
查看>>
打印邮票的组合
查看>>
1. XML概述
查看>>
第十一篇 JVM核心机制之JVM运行和类加载全过程(六)
查看>>
CCDictionary 用调试器查看问题
查看>>
MyBatis 与 Spring 整合
查看>>