# deep copy
data_0 = [1, 2]
data_1 = [3, 4]
data_2d = [data_0, data_1, 10]
data_2d_copy = data_2d.copy ()
print (f"data = {data_2d}")
print (f"data copy = {data_2d_copy}")
# mengambil data dari nested list
data = data_2d [0] # mengambil dari data_2d -> data_0 -> [1, 2]
print (f"data = {data}")
data = data_2d [0][0] # mengambil dari data_2d -> data_0 -> index 0 -> 1
print (f"data = {data}")
print ()
# address semuanya
print (f"address asli = {hex(id(data_2d))}")
print (f"address copy = {hex(id(data_2d_copy))}")
print ("address dari member ke-1")
print (f"address asli = {hex(id(data_2d[0]))}")
print (f"address copy = {hex(id(data_2d_copy[0]))}")
data_2d [1][0] = 5
data_2d [2] = 9 # yang akan berubah hanya data_2d sedangkan data data_2d_copy tidak berubah
print (f"data = {data_2d}")
print (f"data_copy = {data_2d_copy}")
print ()
# kita gunakan deepcopy
'''
untuk melakukan deepcopy
kita harus import deepcopy
'''
from copy import deepcopy
data_2d = [data_0, data_1, 10]
data_2d_deepcopy = deepcopy (data_2d)
print (f"address asli = {hex(id(data_2d))}")
print (f"address deepcopy = {hex(id(data_2d_deepcopy))}")
print ()
print ("address dari member ke-1")
print (f"address asli = {hex(id(data_2d[0]))}")
print (f"address copy = {hex(id(data_2d_deepcopy[0]))}")
data_2d [1][0] = 30
print (f"data = {data_2d}")
print (f"data copy = {data_2d_copy}")
print (f"data deepcopy = {data_2d_deepcopy}")
Tidak ada komentar:
Posting Komentar