一、集合簡介
- 集合的表現形式:set
- 集合與列表很相似,區別如下:
。 集合中的元素必須為不可變對象
。 集合中不能出現重復的元素,即若有重復的元素則不會出現
。 集合中的元素是無序的 -
集合的用途:
1、可以運用集合去重,方法為將列表加入到集合中,然后進行遍歷,最后打印出去重后的結果即可;
-
2、運用集合可以進行關系測試,例如,求差集、並集。
二、集合的一些操作
2.1 set()
set() 函數可以用來創建集合
my_set = set({}) print(my_set, type(my_set)) #結果為 set() <class 'set'>
set() 函數可以將列表和字典轉化為集合
注:若通過 set() 將字典轉化為集合,轉化后的集合只包含字典中的鍵,不會包含值
set1 = set([1, 2, 3]) set2 = set('hello') set3 = set({'姓名': 'zqc', '性別': '女'}) print(set1, type(set1)) print(set2, type(set2)) print(set3, type(set3)) #結果為 {1, 2, 3} <class 'set'> {'h', 'o', 'l', 'e'} <class 'set'> {'性別', '姓名'} <class 'set'>
2.2 通過索引取值
- 因為集合本身是無序的,所以不能直接通過索引取值
- 先將集合轉化為列表,轉化后的列表可以通過索取值
my_set = set([1, 2, 3]) print(list(my_set)[1]) #結果為 2
3.2 in、not in
- 判斷指定元素是否在集合中
- 返回布爾類型
3.3 len()
- len() 用來獲取集合長度,即集合中有幾個元素
- 返回一個 int 類型
3.4 add()
- add() 用來向集合中添加一個元素
my_set = {11, 22, 33} my_set.add(44) print(my_set) #結果為 {33, 11, 44, 22}
3.5 update()
- update() 用來將一個集合中的元素添加到另一個集合中
my_set = {11, 22, 33} your_set = {44} my_set.update(your_set) print(my_set) #結果為 {33, 11, 44, 22}
3.6 pop()
- pop() 用來隨機刪除集合中的一個元素
- pop() 有返回值
my_set = {11, 22, 33} d = my_set.pop() print(d) print(my_set) #結果為 33 {11, 22}
3.7 remove()
- remove() 用來刪除一個指定的元素
my_set = {11, 22, 33} my_set.remove(22) print(my_set) #結果為 {33, 11}
3.8 clear()
- clear() 用來清空集合
my_set = {11, 22, 33} my_set.clear() print(my_set) #結果為 set()
三、集合的運算
3.1 交集 &
- 返回一個集合
- 所有集合公共的區域
my_set = {1, 2, 3, 4, 5} your_set = {3, 4, 5, 6, 7} print(my_set & your_set) #結果為 {3, 4, 5}
3.2 並集 |
- 返回一個集合
- 所有集合除去不可重復后的相加
my_set = {1, 2, 3, 4, 5} your_set = {3, 4, 5, 6, 7} print(my_set | your_set) #結果為 {1, 2, 3, 4, 5, 6, 7}
3.3 差集 -
- 返回的是一個集合
- 集合除去公共的部分
my_set = {1, 2, 3, 4, 5} your_set = {3, 4, 5, 6, 7} print(my_set - your_set) print(your_set - my_set) #結果為 {1, 2} {6, 7}
3.4 異或 ^
- 返回的是一個集合
- 異或為不相交的部分
my_set = {1, 2, 3, 4, 5} your_set = {3, 4, 5, 6, 7} print(my_set ^ your_set) #結果為 {1, 2, 6, 7}
3.5 集合間的關系 ≤、<、≥、>
- 判斷一個集合是否是另一個集合的子集:<=
- 判斷一個集合是否是另一個集合的真子集:<
- 判斷一個集合是否是另一個集合的超集:>=
- 判斷一個集合是否是另一個集合的真超集:>
- 返回布爾類型