一、淺拷貝
定義:淺拷貝只是對另外一個變量的內存地址的拷貝,這兩個變量指向同一個內存地址的變量值。
淺拷貝的特點:
- 公用一個值;
- 這兩個變量的內存地址一樣;
- 對其中一個變量的值改變,另外一個變量的值也會改變;
>>> a=[11,22,33] >>> b=a >>> id(a) 40488632 >>> id(b) 40488632
>>> a is b True >>> a.append(44) >>> a [11, 22, 33, 44] >>> b [11, 22, 33, 44] >>>
二、深拷貝:
定義:一個變量對另外一個變量的值拷貝。
深拷貝的特點:
- 兩個變量的內存地址不同;
- 兩個變量各有自己的值,且互不影響;
- 對其任意一個變量的值的改變不會影響另外一個;
>>> import copy
>>> a=[11,22,33]
>>> b=copy.deepcopy(a)
>>> a
[11, 22, 33]
>>> b
[11, 22, 33]
>>> id(a) 40489528 >>> id(b) 40505392
>>> a.append(44)
>>> a
[11, 22, 33, 44] >>> b [11, 22, 33]
>>>