python列表浅拷贝

列表的append方法以及copy模块的copy方法都是浅拷贝。即列表中的项内存地址都是相同的,如下代码。所以改变一个列表中的项,其它浅拷贝的列表里的项也会变。

import copy
list = [1,3,["te",1],4]
list3 = []
list4 = copy.copy(list)
for i in range(0,len(list)):
    list3.append(list[i])
    print(id(list3[i]))
    print(id(list[i]))
    print(id(list4[i]))
print(id(list3))
print(id(list))
list[2].append(1)
print(list)
print(list3)
print(list4)
4501461712
4501461712
4501461712
4501461776
4501461776
4501461776
4508760584
4508760584
4508760584
4501461808
4501461808
4501461808
4508769608
4508759432
[1, 3, ['te', 1, 1], 4]
[1, 3, ['te', 1, 1], 4]
[1, 3, ['te', 1, 1], 4]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,801评论 1 32
  • 包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...
    清清子衿木子水心阅读 9,201评论 0 27
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 12,225评论 1 118
  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    伊森H阅读 8,192评论 0 15
  • 老爹的茶是从来都喝不过瘾的。因为他泡茶总是在刚好能入口的时候就抽上一口,然后再把热水填上,所以我总是碰不到一...
    夜谷阅读 5,271评论 0 6