程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python淺拷貝、深拷貝和賦值“=”

編輯:Python
a = {
1:[1,2,3]}

① 賦值"="操作

b = a: 賦值引用,a 和 b 都指向同一個對象。

注意:在使用賦值“=”的時候,不可對原變量進行重新的賦值操作,否則原變量會指向一個新的內存地址。例如:

例1:

# 用"="進行賦值操作
a = [1,2,3]
b = a
a = [2,3,4]
print(a)
print(b)
""" 結果: [2, 3, 4] [1, 2, 3] """

例2:

# 對變量a本身進行修改
a = [1,2,3]
b = a
a.append(99)
print(a)
print(b)
"""" 結果: [1, 2, 3, 99] [1, 2, 3, 99] """

②淺拷貝

b = a.copy(): 淺拷貝, a 和 b 是一個獨立的對象,但他們的子對象還是指向統一對象(是引用)。

copy對於一個復雜對象的子對象並不會完全復制,比如序列裡的嵌套序列,字典裡的嵌套序列等都是復雜對象的子對象。對於子對象,python會把它當作一個公共鏡像存儲起來,所有對他的復制都被當成一個引用。

③深拷貝

b = copy.deepcopy(a): 深度拷貝, a 和 b 完全拷貝了父對象及其子對象,兩者是完全獨立的。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved