>[info] set是一個無序且不重復的元素集合
>

[TOC]
<br>
### 集合的定義
#### 創建集合set
```cmd
>>> s1=set()
>>> s1
set()
>>> s2={'a','b','c',1,2,3}
>>> s2
{1, 2, 3, 'b', 'c', 'a'}
>>> type(s2)
<class 'set'>
```
### 集合的內置方法
#### add(value): 添加元素到集合中
由于集合是無效且不重復的,所以添加相同元素,是不會出現重復添加的。
```cmd
>>> s1=set()
>>> s1
set()
>>> s1.add('a')
>>> s1
{'a'}
>>> s1.add('a')
>>> s1
{'a'}
>>>
```
#### clear():清除集合中所有元素
```cmd
>>> s1={'a','b','c'}
>>> s1.clear()
>>> s1
set()
```
#### copy( ):淺拷貝
```cmd
>>> s1={'a','b','c'}
>>> s2=s1.copy()
>>> s2
{'b', 'c', 'a'}
>>> s1.add('d')
>>> s2
{'b', 'c', 'a'}
>>> s1
{'b', 'c', 'a', 'd'}
```
#### difference(*args, **kwargs): 集合相減,返回新的集合,不影響原集合
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1.difference(s2)
{'a'}
>>> s1
{'b', 'c', 'a'}
```
作用等同于 `-`運算:
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1-s2
{'a'}
>>> s1
{'b', 'c', 'a'}
>>>
```
#### difference_update(*args, **kwargs):集合相減,修改原集合
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1.difference_update(s2)
>>> s1
{'a'}
```
#### discard(*args, **kwargs):刪除set集合中的元素
```cmd
>>> s1={'a','b','c'}
>>> s1.discard('b')
>>> s1
{'c', 'a'}
```
#### intersection(*args, **kwargs):取集合交集,返回新集合
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1.intersection(s2)
{'b', 'c'}
>>> s1
{'b', 'c', 'a'}
```
取交集,等同于與`&`運算
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1&s2
{'b', 'c'}
```
#### intersection_update(*args, **kwargs):取集合交集,修改原集合
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1.intersection_update(s2)
>>> s1
{'b', 'c'}
```
#### isdisjoint(*args, **kwargs): 判斷集合是否沒有交集
有交集,返回False。無交集,則返回True
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s3={'d','e','f'}
>>> s1.isdisjoint(s2)
False
>>> s1.isdisjoint(s3)
True
```
#### issubset(*args, **kwargs):判斷集合是否是某個集合的子集
```cmd
>>> s1={'a','b','c'}
>>> s2={'a','b','c','d'}
>>> s1.issubset(s2)
True
```
#### pop():隨機刪除一個元素,返回元素值
```cmd
>>> s1={'a','b','c'}
>>> s1.pop()
'b'
>>> s1
{'c', 'a'}
```
#### remove(*args, **kwargs):刪除元素
```cmd
>>> s1={'a','b','c'}
>>> s1.remove('b')
>>> s1
{'c', 'a'}
```
#### symmetric_difference(*args, **kwargs): 取差集,不修改原集合
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1.symmetric_difference(s2)
{'a', 'd'}
>>> s1
{'b', 'c', 'a'}
```
取差集,等同于`^`運算
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1^s2
{'a', 'd'}
```
#### symmetric_difference_update(*args, **kwargs): 取差集,修改原集合
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1.symmetric_difference_update(s2)
>>> s1
{'a', 'd'}
```
#### union(*args, **kwargs):取并集,不修改原集合
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1.union(s2)
{'d', 'b', 'c', 'a'}
```
取并集,等同于或`|`運算
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1|s2
{'d', 'b', 'c', 'a'}
```
#### update(*args, **kwargs),取并集,修改原集合
```cmd
>>> s1={'a','b','c'}
>>> s2={'b','c','d'}
>>> s1.update(s2)
>>> s1
{'d', 'b', 'c', 'a'}
```
<hr style="margin-top:100px">
:-: 
***微信掃一掃,關注“python測試開發圈”,了解更多測試教程!***
- 前言
- chapter01_開發環境
- chapter02_字符串的使用
- chapter03_列表的使用
- chapter04_字典的使用
- chapter05_數字的使用
- chapter06_元組的使用
- chapter07_集合的使用
- chapter08_輸入輸出
- chapter09_控制流程
- chapter10_實例練習_登錄1
- chapter11_python函數入門
- chapter12_python中的類
- chapter13_輕松玩轉python中的模塊管理
- chapter14_掌握學習新模塊的技巧
- chapter15_通過os模塊與操作系統交互
- chapter16_子進程相關模塊(subprocess)
- chapter17_時間相關模塊(time & datetime)
- chapter18_序列化模塊(json)
- chapter19_加密模塊(hashlib)
- chapter20_文件的讀與寫
- chapter21_階段考核2_登錄
- chapter22_小小算法挑戰(排序&二分法)
- chapter23_用多線程來搞事!
- chapter24_HTTP接口請求(requests)
- chapter25_接口測試框架(pytest)
- chapter26_階段考核3_HTTP接口測試
- chapter27_HTML解析(pyquery)
- chapter28_階段考核4_爬蟲下載網易汽車
- chapter29_python中的那些編碼坑
- chapter30_MySQL數據庫操作
- chapter31 高級特性_迭代器與生成器
- chapter32 高級特性_裝飾器
- chapter33 高級特性_列表處理