1. 程式人生 > >Python 集合set概念和操作

Python 集合set概念和操作

super ash sha amp 自己 rem val t對象 python

# 集合
#     概念
#         無序的, 不可隨機訪問的, 不可重復的元素集合
#         與數學中集合的概念類似,可對其進行交、並、差、補等邏輯運算
#         分為可變集合和非可變集合
#             set
#                 為可變集合
#
#
#
#             frozenset
#                 不可變集合
#                     創建好之後, 無法增刪改
# 定義 # 可變集合set # s = {1,2,3,4} # s = set(iterable) # 其中iterable可以是字符串、列表、元組、字典等 # 但是為dict時,只會獲取提Key作為set的元素 # 集合推導式 # s = set(x**2 for x in range(1, 10) if x % 2 == 0) # s = {推導式}
# 不可變集合frozenset # fs = frozenset(iterable) # 其中iterable可以是字符串、列表、元組、字典等 # 但是為dict時,只會獲取提Key作為set的元素 # 集合推導式 # s = frozenset(x**2 for x in range(1, 10) if x % 2 == 0) # 註意 # 1. 創建一個空集合時, 需要使用set() 或者 frozenset(), 不能使用 s = {}
# 會被識別成為字典 # 2. 集合中的元素, 必須是可哈希的值 # 如果一個對象在自己的生命周期中有一哈希值(hash value)是不可改變的, # 那麽它就是可哈希的(hashable)的 # 暫時理解為 不可變類型 # 3. 如果集合中的元素值出現重復, 則會被合並為1個 # 常用操作 # 單一集合操作 # 可變集合 # # s.add(element) # 註意: # 必須保證添加的元素是可哈希的值 # # s.remove(element) # 指定刪除set對象中的一個元素 # 如果集合中沒有這個元素,則返回一個錯誤 # s.discard(element) # 指定刪除集合中的一個元素 # 若沒有這個元素,則do nothing # s.pop(element) # 隨機刪除並返回一個集合中的元素 # 若集合為空,則返回一個錯誤 # s.clear() # 清空一個集合中的所有元素 # # 元素為不可變類型, 不能修改 # # 無法通過索引或key進行查詢 # 1. 通過 for in 進行遍歷 s = {1, 2, 3} for v in s: print(v) # 2. 通過叠代器進行訪問 its = iter(s) #生成叠代器 print(next(its)) #1 print(next(its)) #2 print(next(its)) #3 its = iter(s) #需要從新生成,因為上面的next已經移動指針到最後 #for in 叠代器 for v in its: print(v) # 不可變集合 # 不能增刪改 # # 1. 通過 for in 進行遍歷 # 2. 通過叠代器進行訪問 # 集合之間操作 # 交集 # intersection(Iterable) # 字符串 # 只判定字符串中的非數字 # 列表 # 元組 # 字典 # 值判定key # 集合 # ... # 邏輯與 ‘&‘ # intersection_update(…) # 交集計算完畢後, 會再次賦值給原對象 # 會更改原對象 # 所以, 只適用於可變集合 s1 = {1, 2, 3, 4, 5} s2 = {4, 5, 6} result = s1.intersection(s2) print(result , type(result)) #{4, 5} <class ‘set‘> result = s1 & s2 print(result , type(result)) #{4, 5} <class ‘set‘> # 並集 # union() # 返回並集 # 邏輯或 ‘|‘ # 返回並集 # update() # 更新並集 # 差集 # difference() # 算術運算符減 ‘-‘ # difference_update() # 判定 # isdisjoint()兩個集合不相交 # issuperset()一個集合包含另一個集合 # issubset()一個集合包含於另一個集合 # 註意 # 可變與不可變集合混合運算, 返回結果類型以運算符左側為主

Python 集合set概念和操作