1. 程式人生 > >python 基礎 -06 set集合,深淺拷⻉

python 基礎 -06 set集合,深淺拷⻉

set集合是python的⼀個基本資料型別. ⼀般不是很常⽤. set中的元素是不重複的.⽆序的.⾥
⾯的元素必須是可hash的(int, str, tuple,bool), 我們可以這樣來記. set就是dict型別的資料但
是不儲存value, 只儲存key. set也⽤{}表⽰

注意: set集合中的元素必須是可hash的, 但是set本⾝是不可hash得. set是可變的. 

set中的元素是不重複的, 且⽆序的.

使⽤這個特性.我們可以使⽤set來去掉重複

set集合增刪改查

1. 增加

2. 刪除

3. 修改

4. 查詢

 

5. 常⽤操作

# 並集

set集合本⾝是可以發⽣改變的. 是不可hash的. 我們可以使⽤frozenset來儲存資料.
frozenset是不可變的. 也就是⼀個可雜湊的資料型別

深淺拷⻉

對於list, set, dict來說, 直接賦值. 其實是把記憶體地址交給變數. 並不是複製⼀份內容. 所以.
lst1的記憶體指向和lst2是⼀樣的. lst1改變了, lst2也發⽣了改變

淺拷⻉

淺拷⻉. 只會拷⻉第⼀層. 第⼆層的內容不會拷⻉. 所以被稱為淺拷⻉

深拷⻉

import copy

lst1 = ["何炅", "杜海濤","周渝⺠", ["麻花藤", "⻢芸", "周筆暢"]]
lst2 = copy.deepcopy(lst1)
lst1[3].append("⽆敵是多磨寂寞")
print(lst1)
print(lst2)
print(id(lst1[3]), id(lst2[3]))

結果:
['何炅', '杜海濤', '周渝⺠', ['麻花藤', '⻢芸', '周筆暢', '⽆敵是多磨寂寞']]
['何炅', '杜海濤', '周渝⺠', ['麻花藤', '⻢芸', '周筆暢']]
4447221448 4447233800

 

都不⼀樣了. 深度拷⻉. 把元素內部的元素完全進⾏拷⻉複製. 不會產⽣⼀個改變另⼀個跟著
改變的問題