set1 = set()
set2 =
print(set1) #
print(set2) #
l = [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
print(list(set(l))) # [1, 2, 3, 4, 5, 6]
add()
update()迭代新增
set1 =
set1.update('abc')
print(set1) #
pop()隨機刪除,返回刪除的元素
remove() 按元素刪除
clear()清空集合
del刪除集合
set1 =
set2 =
# 交集
set3 = set1 & set2
set4 = set1.intersection(set2)
print(set3) #
print(set4) #
# 並集
set5 = set1 | set2
set6 = set1.union(set2) #
print(set5) #
print(set6) #
set1 =
set2 =
print(set2 < set1) # true
print(set2.issubset(set1)) # true 說明set2是set1子集
frozenset():
set1 =
set2 = frozenset(set1)
print(set2)
print(type(set2))
深copy新建乙個物件重新分配記憶體位址、複製物件內容
淺copy不重新分配記憶體位址,內容指向之前的記憶體位址,如果物件中由引用其他物件,如果子物件進行修改,子物件的內容就會改變
=賦值:簡單的拷貝物件的引用,兩物件的id相同
淺拷貝:建立乙個新的組合物件,與原物件共享記憶體中子物件
深拷貝:建立乙個新的組合物件,同時遞迴拷貝所有子物件,與原物件沒有任何關聯
import copy
a = [[1, 2], [3, 4] ,[5, 6]]
b = a # 賦值
c = copy.copy(a) # 淺拷貝得到c
d = copy.deepcopy(a) # 深拷貝得到d
print(a) # [[1, 2], [3, 4] ,[5, 6]]
print(b) # [[1, 2], [3, 4] ,[5, 6]]
print(c) # [[1, 2], [3, 4] ,[5, 6]]
print(d) # [[1, 2], [3, 4] ,[5, 6]]
print(b is a) # true
print(c is a) # false
print(d is a) # false
# 改變不複雜的子物件,淺copy不會改變
print(a) # [[1, 2], [3, 4], [5, 6], [7, 8]]
print(b) # [[1, 2], [3, 4], [5, 6], [7, 8]]
print(c) # [[1, 2], [3, 4], [5, 6]]
print(d) # [[1, 2], [3, 4], [5, 6]]
print(b is a) # true
print(c is a) # false
print(d is a) # false
# 改變複雜的子物件,淺copy會隨著改變
print(a) # [[1, 2], [3, 4], [5, 6], [7, 8]]
print(b) # [[1, 2], [3, 4], [5, 6], [7, 8]]
print(c) # [[1, 2, 3], [3, 4], [5, 6]]
print(d) # [[1, 2], [3, 4], [5, 6]]
print(b is a) # true
print(c is a) # false
print(d is a) # false
集合及深淺copy
集合是無序的,不重複的資料集合,它裡面的元素是可雜湊的 不可變型別 但是集合本身是不可雜湊 所以集合做不了字典的鍵 的。以下是集合最重要的兩點 1.去重,把乙個列表變成集合,就自動去重了。2.關係測試,測試兩組資料之前的交集 差集 並集等關係。1.賦值運算 l1 1,2,3,cat dog l2 l...
Python 集合 深淺copy 列舉
集合是無序的,不重複的資料集合,裡面的元素是可雜湊的 不可變型別 但是集合本身是不可雜湊的 所以集合做不了字典的鍵 1 集合的建立。三種方法 1 直接set 只能建立乙個元素且不能是 int,否則會報錯 2 set 可以隨便建立 3 set set1 set a set2 set set3 prin...
python 集合和深淺拷貝
一.知識點補充 1.列表和字典不能在迴圈過程中進行增刪操作,因為列表索引在迴圈過程會發生改變,字典規定迴圈不可改變.刪除方法 將需要大量刪除的列表或者字典遍歷取出要刪除的物件,放入乙個空列表,之後對列表進行迴圈遍歷,刪除原列表或字典.2.fromkeys a b 不會對原來的字典產生影響.產生新字典...