集合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 ...