中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

淺析Python中深拷貝和淺拷貝

發布時間:2020-07-29 14:20:49 來源:網絡 閱讀:387 作者:ck_god 欄目:編程語言

按照以下不同情況,在IDE中逐個解除注釋,就明白了


import copy

"""
第一種情況,不可變類型變量,都是引用
"""
# a = 1
# a = (11, 222, 333)
# a = 'string'
# a = True
# b = a
#
# print(id(a))
# print(id(b))
#
# c =copy.copy(a)
# d = copy.deepcopy(a)
# print(id(c))
# print(id(d))

"""
第二種情況,可變類型變量,淺拷貝和深拷貝都開辟了空間
備注:[(1,2),3]外層可變,內層不可變,同此類型。
"""
# a = [2, 3, 4]
# # a = {2,5,6}
# # a = {"name": "jim"}
# b = a
# c =copy.copy(a)
# d = copy.deepcopy(a)
#
# print(id(a))
# print(id(b))
# print(id(c))
# print(id(d))
#
# # ................
# a.append(5)
# # ----------------
#
# print(a)
# print(b)
# print(c)
# print(d)

"""
第三種情況,內外層都是不可變類型的,深淺拷貝都是引用
"""
# a = ((1,2),)
# b = a
# c =copy.copy(a)
# d = copy.deepcopy(a)
#
# print(id(a))
# print(id(b))
# print(id(c))
# print(id(d))
#
#
# print(a)
# print(b)
# print(c)
# print(d)

"""
第四種情況,外層不可變,內層可變,因為淺拷貝對不可變類型只是指向了,也即引用了內存地址,深拷貝重新開辟了內存地址。
"""
# e = 1
# f = 2
# list1 = [e, f]
# a = (list1,) # a= ([1,2],)
# b = a
#
# print(id(a))
# print(id(b))
#
# c =copy.copy(a)
# d = copy.deepcopy(a)
# print(id(c))
# print(id(d))
#
# list1.append(8)
#
# print(id(a))
# print(id(b))
# print(id(c))
# print(id(d))
# print(a)
# print(b)
# print(c)
# print(d)

"""
第五種情況,外層可變,內層可變----真正體現淺拷貝和深拷貝的差距,a[:]是一種淺拷貝。深淺拷貝都重新開辟了內存空間,淺拷貝的內層元素只是引用了內存地址,深拷貝的內層元素也重新開辟了內存空間。

"""
e = 1
f = 2
list1= [e,f]

g = 3
h = 4
list2 = [g,h]

a = [list1,list2]
b = a
c =copy.copy(a)
d = copy.deepcopy(a)

print(id(a))
print(id(b))
print(id(c))
print(id(d))

print(a)
print(b)
print(c)
print(d)

print("*" * 20)

# 改變e或者f的元素

list1.append('list1')

print(id(a))
print(id(b))
print(id(c))
print(id(d))

print(a)
print(b)
print(c)
print(d)

print("*" * 20)
a.append('a')

print(id(a))
print(id(b))
print(id(c))
print(id(d))

print(a)
print(b)
print(c)
print(d)
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西城区| 高邮市| 南丹县| 汝阳县| 汤原县| 泰兴市| 渭源县| 鹤庆县| 滕州市| SHOW| 乐昌市| 武宁县| 塔城市| 新邵县| 喀喇沁旗| 盘山县| 广灵县| 广元市| 瑞丽市| 肥东县| 宜都市| 肇东市| 利辛县| 信宜市| 霍州市| 临沭县| 宿州市| 赣州市| 叙永县| 来安县| 苏尼特右旗| 安新县| 西乌珠穆沁旗| 庆元县| 南宫市| 大兴区| 本溪| 通河县| 大埔县| 丹阳市| 贵德县|