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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

别名、浅复制与深复制

發布時間:2024/6/30 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 别名、浅复制与深复制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

別名

別名就是起另一個名字,實際上是同一個東西,地址完全一樣,改變任意一個的值,另一個會隨著改變。

person_info = ['age: 18', ['beijing', 'wuhan']] info_other_name = person_info # 別名,他們是在同一個地址上,改變任意一個,另外的跟著改變(可以減少不必要的內存開銷) print id(info_other_name), id(person_info) # 地址一樣 person_info[0] = 'age: 23' # 改變原地址年齡,info_other_name也跟著變,因為就是一個東西 print u'原來的值', person_info print u'別名的值', info_other_name

?

輸出結果

47750200 47750200 原來的值 ['age: 23', ['beijing', 'wuhan']] 別名的值 ['age: 23', ['beijing', 'wuhan']]

?

淺復制

淺復制表示只復制表面一層,再深的層次還是指向他原來的地址。

import copy person_info = ['age: 18', ['beijing', 'wuhan']] info_shallow_copy = copy.copy(person_info) # 淺復制 只復制第一層,其他層還是指向它原來的地址 print id(info_shallow_copy), id(person_info) # 地址不一樣 person_info[0] = 'age: 23' # 此處改年齡,person并沒有跟著改變 person_info[1].remove('wuhan') # 刪除列表里的下一級列表,會跟著改變 print u'原來的值', person_info print u'淺復制的值', info_shallow_copy

輸出結果

47791200 47769360 # 地址不一樣 原來的值 ['age: 23', ['beijing']] 淺復制的值 ['age: 18', ['beijing']] # 表面上的一層(年齡),獨立于原來的值,但往下一層指向的地址還是原來的指向

?

深復制

深復制之后,所有的內容都獨立于原變量存在。

import copy person_info = ['age: 18', ['beijing', 'wuhan']] info_deep_copy = copy.deepcopy(person_info) # 深復制 全部都都復制過來,都不會跟著改變 print id(info_deep_copy), id(person_info) # 地址不一樣 person_info[0] = 'age: 23' person_info[1].remove('wuhan') print u'原來的值',person_info print u'深復制的值',info_deep_copy

輸出結果

54781712 54859536 原來的值 ['age: 23', ['beijing']] 深復制的值 ['age: 18', ['beijing', 'wuhan']] # 完全獨立于原來的變量

?

轉載于:https://www.cnblogs.com/huahua12/p/8531017.html

總結

以上是生活随笔為你收集整理的别名、浅复制与深复制的全部內容,希望文章能夠幫你解決所遇到的問題。

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