日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python教程:深copy浅copy

發布時間:2025/3/20 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python教程:深copy浅copy 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在python中,對象賦值實際上是對象的引用。當創建一個對象,然后把它賦給另一個變量的時候,python并沒有拷貝這個對象,而只是拷貝了這個對象的引用。

1. 賦值

賦值其實只是傳遞對象引用,引用對象id是一樣的。原始列表改變,被賦值的b也會做相同的改變。

alist = [1,2,3,["a","b"]] b = alist print(b) >>>[1, 2, 3, ['a', 'b']]alist.append(5) print(alist) >>>[1, 2, 3, ['a', 'b'], 5]print(b) >>>[1, 2, 3, ['a', 'b'], 5]

2.淺拷貝

淺拷貝是指拷貝的只是原始對象元素的引用,換句話說,淺拷貝產生的對象本身是新的,但是它的內容不是新的,只是對原對象的一個引用。

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> import copy >>> alist=[1,2,3,["a","b"]] >>> c = copy.copy(alist) >>> print(alist);print(c) [1, 2, 3, ['a', 'b']] [1, 2, 3, ['a', 'b']] >>> alist.append(5) >>> print(alist);print(c) [1, 2, 3, ['a', 'b'], 5] [1, 2, 3, ['a', 'b']]>>> alist[3] ['a', 'b'] >>> alist[3].append('cccc') >>> print(alist);print(c) [1, 2, 3, ['a', 'b', 'cccc'], 5] [1, 2, 3, ['a', 'b', 'cccc']] #里面的子對象被改變了

淺copy的幾種方式:

  • 使用切片[:]操作進行拷貝
>>> alist = [1,2,3,["a","b"]] >>> c = alist[:] >>> print(c) [1, 2, 3, ['a', 'b']]
  • 使用工廠函數(如list/dir/set)等進行拷貝
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> alist = [1,2,3,["a","b"]] >>> c = list(alist) >>> print(c) [1, 2, 3, ['a', 'b']]
  • copy.copy()
>>> alist = [1,2,3,["a","b"]] >>> c = copy.copy(alist) >>> print(c) [1, 2, 3, ['a', 'b']]

3. 深拷貝

深拷貝是指完全拷貝原始對象,而且產生的對象是新的,并且不受其他引用對象的操作影響。

深copy:

Names2 = copy.deepcopy(names)

>>> import copy >>> alist=[1,2,3,["a","b"]] >>> d=copy.deepcopy(alist) >>> print(alist);print(d) [1, 2, 3, ['a', 'b']] [1, 2, 3, ['a', 'b']]#始終沒有改變 >>> alist.append(5) >>> print(alist);print(d) [1, 2, 3, ['a', 'b'], 5] [1, 2, 3, ['a', 'b']]#始終沒有改變 >>> alist[3] ['a', 'b'] >>> alist[3].append("ccccc") >>> print(alist);print(d) [1, 2, 3, ['a', 'b', 'ccccc'], 5] [1, 2, 3, ['a', 'b']] # 始終沒有改變

總結

以上是生活随笔為你收集整理的python教程:深copy浅copy的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。