Python正課14 深淺Copy

2022-01-30 06:29:09 字數 3572 閱讀 1949

l1 = ['xxq',18,'male'] 		#定義列表l1

l2 = l1 #把l1的值引用給l2

print(l1) #輸出l1的內容

print(l2) #輸出l2的內容

print(id(l1)) #輸出l1的id

print(id(l2)) #輸出l2的id

l1[0] = 'qwe' #將l1的第乙個值改變

這個例子中,l4淺copy了l1,可以看出l1和l4列表內的元素記憶體位址相同,列表記憶體位址不同

這個例子中,l4淺copy了l1,並且l1和l4列表中的列表元素值改變,可以看出l1和l4列表內的元素記憶體位址相同,列表記憶體位址不同

要使用深copy,要先導入庫:

import copy
然後使用

import copy

list1=[

'egon',

'lxx',

[1,2]

]list3=copy.deepcopy(list1)

# print(id(list1))

# print(id(list3))

# print(list3)

# 不可變 不可變 可變

# print(id(list1[0]),id(list1[1]),id(list1[2]))

# print(id(list3[0]),id(list3[1]),id(list3[2]))

'''4497919088 4498367856 4498449216

4497919088 4498367856 4498595328

'''# print(list3)

# print(id(list1[2][0]),id(list1[2][1]))

# print(id(list3[2][0]),id(list3[2][1]))

list1[0]='egon'

list1[1]='lxx'

list1[2][0]=111

list1[2][1]=222

# print(list1)

print(list3)

Python正課4 變數

變數就是可以變化的量,量指的是事物的狀態,比如人的年齡 性別,遊戲角色的等級 金錢等等 為了讓計算機能夠像人一樣去記憶事物的某種狀態,並且狀態是可以發生變化的 詳細地說 程式執行的本質就是一系列狀態的變化,變是程式執行的直接體現 所以我們需要有一種機制能夠反映或者說是儲存下來 name egon 定...

python 深淺拷貝案例 python 深淺拷貝

深淺拷貝 對於 數字 和 字串 而言,賦值 淺拷貝和深拷貝無意義,因為其永遠指向同乙個記憶體位址 import copy a1 22255 a2 22255 print id a1 id a2 3428240 3428240 對於字典 元祖 列表 而言,進行賦值 淺拷貝和深拷貝時,其記憶體位址的變化...

Python正課39 迭代器

l egon liu alex i 0while i len l print l i i 1s1 s1.iter l l.iter t 1,t.iter d d.iter set1 set1.iter with open a.txt mode w as f f.iter passd d iterat...