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

歡迎訪問 生活随笔!

生活随笔

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

python

python 深copy_python中的深copy和浅copy

發布時間:2023/12/10 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 深copy_python中的深copy和浅copy 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

bytes

Python bytes/str

bytes 在Python3中作為一種單獨的數據類型,不能拼接,不能拼接,不能拼接

>>> '€20'.encode('utf-8')

b'\xe2\x82\xac20'

>>> b'\xe2\x82\xac20'.decode('utf-8')

'€20'

解碼

>>> b'\xa420'.decode('windows-1255')

'?20'

深copy和淺copy

深copy新建一個對象重新分配內存地址,復制對象內容。淺copy不重新分配內存地址,內容指向之前的內存地址。淺copy如果對象中有引用其他的對象,如果對這個子對象進行修改,子對象的內容就會發生更改。

import copy

#這里有子對象

numbers=['1','2','3',['4','5']]

#淺copy

num1=copy.copy(numbers)

#深copy

num2=copy.deepcopy(numbers)

#直接對對象內容進行修改

num1.append('6')

#這里可以看到內容地址發生了偏移,增加了偏移‘6’的地址

print('numbers:',numbers)

print('numbers memory address:',id(numbers))

print('numbers[3] memory address',id(numbers[3]))

print('num1:',num1)

print('num1 memory address:',id(num1))

print('num1[3] memory address',id(num1[3]))

num1[3].append('6')

print('numbers:',numbers)

print('num1:',num1)

print('num2',num2)

輸出:

numbers: ['1', '2', '3', ['4', '5']]

numbers memory address: 1556526434888

numbers memory address 1556526434952

num1: ['1', '2', '3', ['4', '5'], '6']

num1 memory address: 1556526454728

num1[3] memory address 1556526434952

numbers: ['1', '2', '3', ['4', '5', '6']]

num1: ['1', '2', '3', ['4', '5', '6'], '6']

num2 ['1', '2', '3', ['4', '5']]

總結

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

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