第7章 映像和集合型別 3

2021-08-26 06:49:53 字數 1495 閱讀 5791

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...