深淺拷貝一看就懂版

2022-03-04 05:33:50 字數 1257 閱讀 5266

# 淺拷貝

l1 = [1, 2, [3, 4]]

l2 = l1.copy()

l2[0] = 66 # 該變淺拷貝後列表中不可變型別的值 [66, 2, [3, 4]]

print(id(l2)) #1532404207560

print(id(l1)) #1532282360904 拷貝後id不一樣

l2[2][0] = 5 # 改變淺拷貝後列表中可變型別的值

# print(l2) # [66, 2, [5, 4]]

print(id(l2[0])) #140723557857568

print(id(l1[0])) #140723557855488 改變淺拷貝後列表中不可變型別的值只會改變自己的值所以id不一樣

print(id(l2[2][0])) #140723557855616

print(id(l1[2][0])) #140723557855616 改變淺拷貝後列表中可變型別的值兩個值都會一起變所以id一樣

# 2、深拷貝

l1 = [1, 2, [3, 4]]

import copy

l2 = copy.deepcopy(l1)

l2[0] = 66 # 該變深拷貝後列表中不可變型別的值 [66, 2, [3, 4]]

print(id(l2)) #1532404207560

print(id(l1)) #1532282360904 拷貝後id不一樣

l2[2][0] = 5 # 改變深拷貝後列表中可變型別的值

# print(l2) # [66, 2, [5, 4]]

print(id(l2[0])) #140723557857568

print(id(l1[0])) #140723557855488 改變深拷貝後列表中不可變型別的值只會改變自己的值所以id不一樣

print(id(l2[2][0])) #140723557855616

print(id(l1[2][0])) #140723557855552 改變深拷貝後列表中可變型別的值仍然只會改變自己的值所以id不一樣

一看就懂的SwitchHosts

switchhosts 是乙個管理 切換多個 hosts 方案的工具。它是乙個免費開源軟體。日常開發工作中,我們可能經常需要切換各種 hosts 繫結,比如在本地開發時可能需要乙個開發環境的 hosts 繫結方案,發布到測試環境後又有乙個測試環境的 hosts 繫結方案,然後可能還有乙個預發布環境,...

一看就懂TCP 連線

我們先來看乙個定義。這樣理解比較抽象。我們換個角度。它的本質還是傳輸控制。如果讓我們自己設計這個傳輸,我們會怎麼想呢。tcp 協議它會先建立連線。三次握手目的是保證雙方都有傳送和接收的能力 首要原因是為了防止舊的重複連線初始化造成混亂。同步雙方初始序列號客戶端和服務端都處於 closed 狀態。先是...

資訊熵 一看就懂

先給出資訊熵的公式 首先了解一下資訊量 資訊量是對資訊的度量,就跟時間的度量是秒一樣,當我們考慮乙個離散的隨機變數 x 的時候,當我們觀察到的這個變數的乙個具體值的時候,我們接收到了多少資訊呢?多少資訊用資訊量來衡量,我們接受到的資訊量跟具體發生的事件有關。資訊的大小跟隨機事件的概率有關。越小概率的...