Python核心程式設計學習筆記(八)

2021-08-21 15:16:15 字數 2706 閱讀 8691

集合set

集合是可變的容器

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

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

集合內的元素必須是不可變的物件(不能放列表字典、字典等可變物件)

集合是可迭代物件

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

建立空的集合:

set()

建立非空集合:

s=集合的建構函式set

set() 建立乙個空的集合物件(不能用{}來建立空集合,這是空字典)

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

示例:s=set()

s=s=set(「abc」)      #s=

s=set()     #s=

s=set([1,2,3,2])                                #s=

s=set(range(10))

集合的運算

交集 &, 並集 |, 補集 -, 子集 <, 超集 >, 對稱補集 ^

& 生成兩個集合的交集

s1=s2=

s3=s1 & s2     # s3=

| 生成兩個集合的並集

s1=s2=

s3=s1 | s2     # s3=

- 生成兩個集合的補集

s1=s2=

s3=s1 - s2   #生成屬於s1但不屬於s2的集合  s3=

^ 生成兩個集合的對稱補集

s1=s2=

s3=s1 ^ s2     # s3=

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

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

s1=s2=

s1 > s2   #true  s1是s2的超集

s2 < s1   #true  s2是s1的子集

== != 判斷集合是否相等

==    # true

!=        # true

>= <= 判斷集合的包含和被包含關係

in /not in運算子

判斷乙個元素是否存在於集合中(同其他容器型別的in規則相同)

集合和字典的優點:

in/ not in運算子的查詢速度快

集合的內建函式操作:

len(x),max(x),min(x),sum(x),any(x),all(x)

python3集合中常用的方法

方法

意義

s.add(e)

在集合中新增乙個新的元素e;如果元素已經存在,則不新增

s.remove(e)

從集合中刪除乙個元素,如果元素不存在於集合中,則會產生乙個keyerror錯誤

s.discard(e)

從集合s中移除乙個元素e,在元素e不存在時什麼都不做;

s.clear()

清空集合內的所有元素

s.copy()

將集合進行一次淺拷貝

s.pop()

從集合s中刪除乙個隨機元素;如果此集合為空,則引發keyerror異常

s.update(s2)

用 s與s2得到的全集更新變數s

集合是可迭代物件

用for 語句可以得到集合中的全部元素

s=for x in s:

print(x)

集合推導式:

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

語法: 

注:代表可省略  

固定集合 frozenset

固定集合是不可變的,無序的,含有唯一元素的集合

(集合是可變的,可以增刪元素,固定集合不可變)

作用:固定集合可以作為字典的鍵,也可以作為集合的值

建立空的固定集合:

fz=frozenset()

建立非空的固定集合

fz=frozenset(iterable) 用可迭代物件建立集合

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

固定集合的運算:

同set運算完全一致

交集 &, 並集 |, 補集 -, 子集 <, 超集 >, 對稱補集 ^

in /not in

函式function

函式是可以重複執行的語句塊,可以重複呼叫

作用:用於封裝語句,提高**的重用性

用於定義使用者級別的函式

語法:def 函式名(傳參列表):

語句塊說明:

1.函式名就是語句塊的名稱

2.函式名的命名規則和變數名相同(函式名必須是識別符號)

3.函式名是乙個變數

4.函式名有自己的名字空間,在函式外部不可以訪問函式內部的變數,

在函式內部可以訪問函式外部的變數,要讓函式處理外部資料需要用引數給函式傳入一些資料

5.引數列表可以為空

6.語句部分不能為空,如果為空需要用pass語句填充

函式呼叫:

函式名(實際呼叫傳遞引數)

說明:函式呼叫是乙個表示式

如果沒有return語句,函式執行完畢後返none物件

如果函式需要返回其他的物件需要用到return語句

Python核心程式設計學習筆記(十一)

31 range 內建函式 1 range 的完整語法,要求提供兩個或三個整數引數 range start,end,step 1 range 會返回乙個包含所有k的列表,這裡start k end,從start到end,k每次遞增step。step不可以為零,否則將發生錯誤。range 2,19,3...

Python核心程式設計學習筆記(五)

for 語句 作用 用來遍歷可迭代物件的資料元素 可迭代物件是指能依次獲取資料物件的元素 可迭代物件包括 字串str 列表list 字典dict 集合set range函式返回的物件等 語法 for 變數列表 in 可迭代物件 語句塊 else 語句塊 range 函式 格式 見help range...

python核心程式設計筆記

1 賦值並不是直接將乙個值賦給乙個變數,儘管你可能根據其它語言程式設計經驗認為應該如此。在python 語言中,物件是通過引用傳遞的。在賦值時,不管這個物件是新建立的,還是乙個已經存在的,都是將該物件的引用 並不是值 賦值給變數。一切皆為物件。python 的賦值語句不會返回值,但可以鏈式賦值。x ...