本文實例講述了Python淺拷貝與深拷貝用法。分享給大家供大家參考。具體分析如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
>>> person = [ 'name' ,[ 'savings' , 100 ]] >>> hubby = person[:] >>> wifey = list (person) >>> [ id (x) for x in person,hubby,wifey] [ 3074051788L , 3074061740L , 3074061996L ] >>> [ id (y) for x in person,hubby,wifey for y in x] [ 3074319552L , 3073979916L , 3074319552L , 3073979916L , 3074319552L , 3073979916L ] >>> hubby[ 0 ] = 'joe' >>> wifey[ 0 ] = 'jane' ([ 'joe' ,[ 'savings' , 100 ]],[ 'jane' ,[ 'savings' , 100 ]],[ 'name' ,[ 'savings' , 100 ]]) >>> hubby[ 1 ][ 1 ] = 70 >>> hubby,wifey,person ([ 'joe' ,[ 'savings' , 70 ]],[ 'jane' ,[ 'savings' , 70 ]],[ 'name' ,[ 'savings' , 70 ]]) |
淺拷貝,創造了新的對象,但是它的對象引用確和被拷貝對象一致。
如果被拷貝對象的構成元素是不可變類型,則拷貝對象對這個元素的改變,實際上是創造一個新的對象。
如果被拷貝對象的構成元素是可變類型,則拷貝對象對這個元素的改變,實際上是在原對象的內存空間上修改這個內存空間里面的內容。
這樣,才有hubby[1][1]=70會導致wifey,person相應值的改變。
希望本文所述對大家的Python程序設計有所幫助。