python學習筆記(七)之集合2
不變的集合
在」python學習筆記(六)之集合1「中以set()來建立集合,這種方式所建立的集合都是可原地修改的集合,或者說是可變的,也就是說是unhashable。
還有一種集合,不能在原處修改。這種集合的建立方法是用frozenset(),ps:frozen凍結的,是不可變的,也就是說是hashable--可雜湊。
例項1:
>> f_set = frozenset("wtf")集合運算>> f_set
frozenset(['t', 'w', 'f'])
>> f_set.add("python")
traceback (most recent call last):
file "", line 1, in
attributeerror: 'frozenset' object has no attribute 'add'
說明:報錯說集合是不能修改的。
對比可以修改的集合:
例項2:
>> c_set = set("name")
>> c_set
set(['a', 'e', 'm', 'n'])
>> c_set.add("python")
>> c_set
set(['a', 'e', 'm', 'python', 'n'])
元素與集合的關係
只有一種關係:元素要麼屬於集合,要麼不屬於。
例項3:
>> c_set集合與集合的關係set(['a', 'e', 'm', 'python', 'n'])
>> "a" in c_set
true
>> "wtf" in c_set
false
判斷集合a是否等於集合b
例項4:
>> a = set(["q","w","t","f"])判斷集合c是否是集合b的子集,或者說b是否是a的超集(超集:即a的元素也都是b的元素,但是b的元素比a的元素數量多。)>> b = set(["w","f","q","t"])
>> a == b
true
>> a != b
false
例項5:
>> c = set(["w","t","f","g"])集合的並集>> d = set(["w","t"])
>> d < c ##d是c的子集
true
>> d.issubset(c) ##d是否是c的子集
true
>> c.issuperset(d) ##c是否是d的超集
true
表示式:a | b
或者使用函式a.union(b) ps:union聯盟
注意:a,b的並集得到的結果就是兩個集合並集,這個結果是新生成的乙個物件,不是將集合a擴充!
例項6:
>> a = set(["w","t","f"])集合的交集>> b = set(["z","h","a","o"])
>> a | b
set(['a', 't', 'w', 'f', 'h', 'z', 'o'])
>> a.union(b)
set(['a', 't', 'w', 'f', 'h', 'z', 'o'])
>> a
set(['t', 'w', 'f'])
>> b
set(['a', 'h', 'z', 'o'])
表示式:b & c
或者使用函式b.intersection(c) ps:intersection 路口
例項7:
>> b = set(["z","h","a","o"])集合的補集>> c = set(["z","y","d"])
>> b & c
set(['z'])
>> b.intersection(c)
set(['z'])
>> b
set(['a', 'h', 'z', 'o'])
>> c
set(['y', 'z', 'd'])
表示式:b - c ##b相對於c的差(補),即b相對於c不同的元素
或者使用函式 b.difference(c)
例項8:
>> bset(['a', 'h', 'z', 'o'])
>> c
set(['y', 'z', 'd'])
>> b - c
set(['a', 'h', 'o'])
>> c - b
set(['y', 'd'])
>> b.difference(c)
set(['a', 'h', 'o'])
python學習筆記集合(七)
set 集合 是乙個無需不重複的元素資料集,對比列表的區別首先是無需的,不可以使用索引進行訪問,另外乙個特點是不能有重複資料。專案開發中,集合主要用於資料元素去重和測試是否存在。集合還支援一些數學上的運算,例如 union 聯合 intersection 交 difference 差 symmetr...
python之集合學習筆記
按我的理解,集合類似於數學中的集合這一概念。集合有以下幾個特性 1.集合內的元素是無序的,這和列表與元組不同,後兩者因為有序,所以可以用切片操作和下標索引。但集合不行。2.集合只能用工廠方法來生成,函式有兩個 set 與frozenset 分別是可變與不可變的集合工廠函式。a set beyond ...
Python學習筆記 七 集合
集合 set 是乙個無序的不重複元素序列。建立格式 parame 或者set value print basket 這裡演示的是去重功能 orange in basket 快速判斷元素是否在集合內 true crabgrass in basket false 下面展示兩個集合間的運算.a set a...