Chinaunix首页 | 论坛 | 博客
  • 博客访问: 608906
  • 博文数量: 244
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-27 09:53
个人简介

记录学习,记录成长

文章分类

全部博文(244)

我的朋友

分类: Python/Ruby

2015-06-17 17:23:09


分片获得拷贝

  1. >>> list7=list6[:]
  2. >>> list7
  3. [6, 5, 4, 3, 2, 1, 0]

赋值获得拷贝

  1. >>> list8=list6
  2. >>> list8
  3. [6, 5, 4, 3, 2, 1, 0]

这样来看效果好像是一样的,但是利用列表的内置函数进行修改后就可以看到差别了

对源列表进行修改

  1. >>> list6.sort()
  2. >>> list6
  3. [0, 1, 2, 3, 4, 5, 6]

此时的list7不变

  1. >>> list7
  2. [6, 5, 4, 3, 2, 1, 0]

此时的list8已经变了

  1. >>> list8
  2. [0, 1, 2, 3, 4, 5, 6]
Python的变量就像一个标签,虽然你为原来的列表指定另一个名字,但就只是为他添加了一个指向它的标签而已,原来的内容还是不变的;而用分片的方式拷贝,它会从内存中按照原来的列表再拷贝一份列表,无论你原来的列表怎么变,这个拷贝都是不会变的;你可以用id函数查看一下,看完你就知道了

id

  1. >>> id(list6)
  2. 35724184
  3. >>> id (list8)
  4. 35724184
  5. >>> id(list7)
  6. 35714272



阅读(818) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~