Chapter08 python基礎 集合

2021-08-20 11:38:17 字數 1931 閱讀 2725

(一)簡介

集合是可變的容器

集合內的資料物件都是唯一的(不能重複多次的)

集合是無序的儲存結構,集合內的資料沒有先後順序關係

集合內的元素必須是不可變物件

集合是可迭代物件

集合是相當於只有鍵沒有值的字典(鍵則是集合的資料)

(二)建立集合

建立空的集合:

set()          #不能用{}來建立空集合,此方法已被用於字典

建立非空集合:

s =

(三)集合的建構函式set

set()  建立乙個空的集合物件(不能用{}來建立空集合)

set(iterable)  用可迭代物件建立乙個新的集合物件

示例:s = set()

s = set(「abc」)                         # s =

s = set()                # s =

(四)集合的運算:

交集,並集,補集,子集,超集   

運算子:&   |    -    ^   <    <=   >   >=   ==   !=

&交集|並集

-補集:s1-s2    #生成屬於s1但不屬於s2的所有元素的集合

^對稱補集:s1^s2  #(s1-s2)|(s2-s1)

>判斷乙個集合是另乙個集合的超集

《判斷乙個集合是另乙個集合的子集

(五)in / not in 運算子

in 等同於字典的in, 用於集合中,當某個值存在於集合中,返回true,否則返回false

not in 與 in 返回值相反

集合的 in / not in 運算子的速度快於序列

(六)能用於集合的函式:

len(x)

max(x)

min(x)

sum(x)

any(x)

all(x)

集合是可迭代物件

(七)集合的方法:請自學

(八)集合推導式:

集合推導式是用可迭代物件生成集合的表示式

語法:注:內的內容可省略

示例:numbers = (1,2,3,2,2,3,3,4,5)

s =                 #去除重複的元素

(九)固定集合 frozenset

(1)固定集合是不可變的,無序的

(2)固定集合可以作為字典的鍵,還可以作為集合的值

(3)建立空的固定集合

fs = frozenset()

(4)建立非空的固定集合:

frozenset(iterable)   用可迭代的物件建立新的固定集合

示例:fz = frozenset([2,3,5,7])            #frozenset()

(5)運算:

&交集|並集

-補集^對稱補集

in /not in 運算

(以上運算與set的運算完全相同)

(6)固定集合的方法:

相當於集合的全部方法去掉修改集合的方法

(十)列表,字典,集合物件優缺點:

(1)都為可變

(2)列表的尾部插入速度比較快,查中間插入和頭插資料速度慢

(3)列表有序

(4)字典新增,刪除,修改速度快於列表

(5)集合的新增,刪除快於列表,且不能儲存重複元素

Chapter08 工廠方法模式

工廠方法模式 factory method 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類中。工廠方法模式在實現時,客戶端需要決定例項化哪乙個工廠來實現運算類,選擇判斷的問題還是存在的,也就是說,工廠方法把簡單工廠的內部邏輯判斷移到了客戶端 來進行。你想要...

初識設計模式 chapter 08 模板方法模式

直到目前,我們的議題都繞著封裝轉,我們已經封裝了物件建立 方法呼叫 複雜介面 鴨子 披薩。接下來呢?我們將要深入封裝演算法塊,好讓子類可以在任何時候都可以將自己掛接進運算裡。我們甚至會在本章學到乙個受到好萊塢影響而啟發的設計原則。有些人沒有咖啡就活不下去,有些人則離不開茶。兩者的共同成分是什麼,當然...

Python學習筆記08

nudge 1 wink 2 a,b nudge,wink a,b 1,2 c,d nudge,wink c,d 1,2 nudge 1 wink 2 a,b,c 1,2,3 a,c 1,3 a,b,c abc a,c a c 高階序列賦值語句模式 string spam a,b,c,d strin...