玩耍PythonPythoner集中营首页投稿(暂停使用,暂停投稿)

Python关于对象的复制

2016-06-02  本文已影响260人  上发条的树

不同名称指向同一对象

以list为例,简单的等号赋值,并不是复制。而是不同的名称指向同一个对象:

>>> list = ['python','java','swift','oc']
>>> mylist = list
>>> mylist
['python', 'java', 'swift', 'oc']
>>> del list[0]
>>> list
['java', 'swift', 'oc']
>>> mylist
['java', 'swift', 'oc']

删除了list的第一个元素,对应的mylist也发生变化,说明list,mylist指向同一个对象。

使用切片的方式进行复制

>>> list = ['python','java','swift','oc']
>>> mylist = list[:]
>>> mylist
['python', 'java', 'swift', 'oc']
>>> del list[0]
>>> list
['java', 'swift', 'oc']
>>> mylist
['python', 'java', 'swift', 'oc']

使用切片的方式mylist = list[:]进行复制,发现list删除第一个元素,mylist没有发生变化。说明list和mylist属于两个不同的对象。

整数的复制

对于整数来说,不属于对象的范畴,所以复制只需要进行简单的赋值即可:

>>> i = 1
>>> ii = i
>>> ii
1
>>> i = 2
>>> ii
1

ps:关于切片不熟悉的朋友,可以参考下我的另一篇文章:Python的高级特性--切片(slice)

小结

上一篇 下一篇

猜你喜欢

热点阅读