集合是一個無序的可變的序列。集合中的元素必須是可hash的,即不可變的數據類型。
空集合
a=set()
注意a={}創建的是一個空字典。
set —— 可變集合。集合中的元素可以動態的增加或刪除。
frozenset —— 不可變集合。集合中的元素不可改變。
注:對于 并集, 交集, 差集 等的返回值,與最左邊的操作數具有相同的類型。例如:s & t 取交集。s集合是一個set類型的集合,t集合是一個frozenset類型的集合,則返回的結果將是set類型的集合。
也可以用set()轉化為集合
1
2
3
4
5
6
7
|
b = [ 1 , 2 , 3 , 4 ] a = set (b) a { 1 , 2 , 3 , 4 } |
還可以用{}來創建一個集合
1
2
3
4
5
|
a = { 1 , 2 , 3 , 4 , 1 } a { 1 , 2 , 3 , 4 } |
與字典一樣,因為集合是無序的,所以當有重復元素時,只保留其中一個。
不可變集合就是一個無序的不可變的集合
用frozenset(seq)創建
1
2
3
4
5
|
a = frozenset ([ 1 , 2 , 3 ,( 1 , 2 , 4 )]) a frozenset ({ 1 , 2 , 3 ,( 1 , 2 , 4 )}) |
元素也只能是可hash的
1
2
3
|
frozenset ([ 1 , 2 , 3 ,[ 1 , 2 , 4 ]]) error |
主要用來做字典的鍵。。與tuple的區別在于無序,元素不可重復,且元素只能是不可變類型。
描述:可以將其它的組合數據類型轉化為不可變集合類型(或將可變的集合類型set轉變為不可變的集合類型 frozenset),返回一個無重復元素且排序任意的不可變集合。
frozenset()函數
語法: frozenset() -> empty frozenset object 返回一個不可變空集合
frozenset(iterable) -> frozenset object 返回一個不可變新集合
iterable —— 要轉換的組合數據類型。