按我的理解,集合類似於數學中的集合這一概念。
集合有以下幾個特性:
1.集合內的元素是無序的,這和列表與元組不同,後兩者因為有序,所以可以用切片操作和下標索引。但集合不行。
2.集合只能用工廠方法來生成,函式有兩個:set()與frozenset().分別是可變與不可變的集合工廠函式。
a=set("beyond")
b=frozenset("beyond")
3.訪問集合中的元素,要先判斷集合中存在不存在這個元素,可以用in 與not in 操作符檢查。例如:
a=set("beyond")#生成了乙個集合
if'e'
ina:
print 'e'
4.更新集合的元素方法
a=set("beyond")
a.add("c")
print a
a.update("hello")
print a
5.刪除集合元素或者集合本身
a=set("beyond")
a.remove('b')
print a
del a
6.集合相等與大小的判斷
a=set("beyond")
b=frozenset("beoynd")#注意與上面字串的順序不一樣,但兩個集合是相等的
print a==b
而如果兩個集合,乙個集合的元素全部可以在另乙個集合中找得到,那麼可以用大於小於號來作判斷
a=set("beyond is a band")
b=frozenset("beoynd")#注意與上面字串的順序不一樣,但兩個集合是相等的
print a>b
print a
7.集合的數學意義上的操作
a.聯合 | ,這個合併操作可以把兩個集合中所有的 元素合併在一起。對照現實生活的情景如下:兩個班級的學生一起聯合舉辦某 個活動。那所有參加活動的同學就是:a班|b班
a=set("abc")
b=set("def")
c=a|b
print c
b.交集&,即兩個集合中都共同擁有的相同的元素。比如兩個班級中,有老師同時給這兩個班級上課,那這些老師就是這兩個班級師生集合的交集部分。
a=set("abc123")
b=set("def123")
c=a&b
print c
結果輸出:set([『1』, 『3』, 『2』])
c.差集-
a=set("abc123")
b=set("def123")
c=a-b
print c
8.前面說過集合有可變與不可變這兩種型別,如果乙個可變集合與乙個不可變集合用集合操作,那結果是可變的還是不可變的呢?
答案是看集合操作符左右兩邊的集合型別,操作結果的型別與左邊的集合型別相同。
9.以前我們習慣用+來給某個資料序列新增新的元素,但集合不支援這種操作,如果要新增,不妨用|操作符
Python學習筆記 Python之集合set
1.什麼是set集合 set集合 無序的並且是不重複的,如下 s set a b c 2.set集合訪問 訪問set集合中的元素,使用 in 操作符判斷,如下 s set a b c print c in s print d in s結果如下 true false3.set集合遍歷 使用 for 迴...
python學習筆記(七)之集合2
python學習筆記 七 之集合2 不變的集合 在 python學習筆記 六 之集合1 中以set 來建立集合,這種方式所建立的集合都是可原地修改的集合,或者說是可變的,也就是說是unhashable。還有一種集合,不能在原處修改。這種集合的建立方法是用frozenset ps frozen凍結的,...
python學習筆記 集合
使用工廠方法 set 和 frozenset s set cheeseshop s set c e h o p s t frozenset bookshop t frozenset b h k o p s type s type t 用各種集合內建的方法和操作符新增和刪除集合的成員 s.add z ...