yp1234 发表于 2015-12-15 09:41:07

python使用分片创建列表的拷贝


[*]>>> list7=list6[:]

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




[*]>>> list8=list6

[*]>>> list8
[*][6, 5, 4, 3, 2, 1, 0]

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




[*]>>> list6.sort()

[*]>>> list6
[*][0, 1, 2, 3, 4, 5, 6]




[*]>>> list7

[*][6, 5, 4, 3, 2, 1, 0]




[*]>>> list8

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



[*]>>> id(list6)

[*]35724184
[*]>>> id (list8)
[*]35724184
[*]>>> id(list7)
[*]35714272
页: [1]
查看完整版本: python使用分片创建列表的拷贝