7.6 集合型別
集合物件是一組無序排列的可雜湊的值。集合成員可以做字典中的鍵。
集合支援in和not in操作符檢查成員,由len()內建函式得到集合的基數,用for迴圈迭代集合的成員。但因為集合本身是無序的,所以不可以為集合建立索引或執行切片操作,也沒有鍵可用來獲取集合中元素的值。
集合有兩種不同的型別,可變集合(set)和不可變集合(frozenset)。對可變集合可以新增和刪除元素,對不可變集合不允許這樣做。
7.6.1 如何建立集合型別和給集合賦值
集合被建立的唯一方法——用集合的工廠方法set()和frozenset()。
>>> s = set("1234567890")
>>> s
set(['1', '0', '3', '2', '5', '4', '7', '6', '9', '8'])
>>> frozenset(("1",2,3))
frozenset(['1', 2, 3])
>>>
7.6.2 如何訪問集合中的值
可以遍歷檢視集合成員或檢查某項元素是否是乙個集合中的成員。
>>> 2 in s
false
>>> "2" in s
true
>>> for item in s:
... print item
... 10
3>>>
7.6.3 如何更新集合
用各種集合內建的方法和操作符新增和刪除集合的成員。
add() update() remove() -= +=
只有可變集合能被修改。試圖修改不可變集合會引發異常。
>>> s.add("1111")
>>> s
set(['1111', '1', '0', '3', '2', '5', '4', '7', '6', '9', '8'])
>>> s.update((1,2,3))
>>> s
set(['1111', 2, 3, 1, '1', '0', '3', '2', '5', '4', '7', '6', '9', '8'])
>>> s.remove(1)
>>> s
set(['1111', 2, 3, '1', '0', '3', '2', '5', '4', '7', '6', '9', '8'])
>>> s -= set("123")
>>> s
set(['1111', 2, 3, '0', '5', '4', '7', '6', '9', '8'])
>>>
7.6.4 如何刪除集合中的成員和集合
del7.7 集合型別操作符
7.7.1 標準型別操作符
1. 成員關係(in, not in)
2. 集合等價/不等價
3. 子集/超集
7.7.2 集合型別操作符
1.聯合(|)
2. 交集(&)
3. 差補/先對補差(-)
4. 對稱查分(^)
第7章 映像和集合型別
7.1 對映型別 字典 字典是python語言中唯一的對映型別。乙個字典物件是可變的,它是乙個容器型別,能儲存任意個數的python物件,其中也包括其他容器型別。字典型別和序列型別容器類的區別是儲存和訪問資料的方式不同。序列型別只用數字型別的鍵。對映型別也可以用其他物件型別做鍵,一般常見的是用字串做...
第3章 字典和集合
dicti型別在各種程式中得到廣泛應用,模組的命名空間 例項的屬性和函式的關鍵字引數中都可以看到欄位的身影。跟它有關的內建函式都在 builtins dict 模組中。python對dict的實現做了高度優化,而雜湊表是字典型別效能出眾的根本原因。集合 set 的實現其實也依賴於雜湊表。想要進一步理...
Python核心程式設計 映像和集合型別
對映型別物件裡雜湊值 鍵,key 和指向的物件 值,value 是一對多的關係。dict1 dict1 dict2 dict1,dict2 fdict dict x 1 y 2 traceback most recent call last file line 1,in typeerror dict...