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]