深淺copy,is和 區別,集合,列表的操作

2022-05-17 03:00:56 字數 1434 閱讀 4565

== 比較的是兩邊的值是否相等

is 判斷的記憶體位址是否相同

id 相同,值一定相同

值 相同,id不一定相同

我們所有的**都需要依賴於**塊執行,乙個py檔案就是乙個**塊.互動式命令下一行就是乙個**塊.
**塊的兩個機制

同一**塊下有個乙個機制.

- 機制內容---> int(float):任何數字在同一**塊下都會復用,str:幾乎所有的字串都會符合快取機制,bool:true和false在字典中會以1,0方式存在,並且復用

- 目的(優點):節約記憶體,提公升效能.

- 適用的物件:int,bool,str

- 具體細則:所有的數字,bool,幾乎所有的字串

不同**塊下,遵循另乙個機制(小資料池)

- 機制內容 int:那麼大家都知道對於整數來說,小資料池的範圍是-5~256 ,如果多個變數都是指向同乙個(在這個範圍內的)數字,他們在記憶體中指向的都是乙個記憶體位址,str字串只含有大小寫字母,數字,下劃線,並且長度不過長時會駐留

- 目的(優點):節約記憶體,提公升效能

- 適用的物件:int,bool,str

- 具體細則:-5~256的數字,bool,滿足規則的字串

- 列表的去重

- 關係測試: 交集,並集,差級....

set()

注意:{}是空字典不是空集合

- add 增加

- update 迭代的增加

- remove 按照元素刪

- pop 隨機刪除

- 變相改值: 刪除後加入

- 交集:&    2個集合共有的

- 並集:| 2個集合所有的元素

- 差集:- 第乙個集合有,第二個集合沒有的

- 反交集:^ 除了兩個集合共有的,其他元素組成的集合

子集,超集 包含和被包含的關係.被包含的為子集,包含的是超集

將列表轉化為集合則自動去重,再轉化為列表即可
淺拷貝:在記憶體中開開闢乙個新的空間,存放copy的物件(列表,字典但是裡面的所有元素與被copy物件裡面的元素共同乙個)
python對深copy進行乙個優化.將不可變的資料型別沿用同乙個,可變型別建立乙個新記憶體空間

深copy:巢狀的可變的資料型別不是同乙個

使用方法

import copy --->引用copy模組

s=[1,2,3,4]

ss=s.copy()

set集合和深淺拷貝

set 集合 不重複,無序,內容必須可hash 不可變 可用來去重複 lst 1,2,3,4,1,2,3,4,5 s set lst lst list s print lst 1,2,3,4,5 增加.add update 迭代新增 update abc 刪除.remove 直接刪除,不存在會報錯 ...

集合set 和 深淺copy

集合是無序的,不重複的資料集合,它裡面的元素是可雜湊 不可變型別 但是集合本身是不可雜湊,所以集合做不了字典的鍵 集合最重要的2點 去重 把乙個列表變成集合,就自動去重了。關係測試 測試兩組資料之間的交集 並集 差集等關係 1 set set 2 set 1 add.2 set 3set.add s...

python 集合和深淺拷貝

一.知識點補充 1.列表和字典不能在迴圈過程中進行增刪操作,因為列表索引在迴圈過程會發生改變,字典規定迴圈不可改變.刪除方法 將需要大量刪除的列表或者字典遍歷取出要刪除的物件,放入乙個空列表,之後對列表進行迴圈遍歷,刪除原列表或字典.2.fromkeys a b 不會對原來的字典產生影響.產生新字典...