iT邦幫忙

2024 iThome 鐵人賽

DAY 12
1
Python

Python入門基礎語法與應用系列 第 12

Day 12 Python入門基礎語法與應用-集合Set

  • 分享至 

  • xImage
  •  

今天要介紹的是Set集合~
Set跟List也是有點像!

Set有兩個特點~
前面談到的List和Tuple是有序性
但Set是沒有順序的~無序性!這也代表我們沒辦法透過索引去訪問元素
還有一個不同的地方是元素不能重複,唯一性!如果我們把重複的元素加進去的話,Set會自動忽略

因為Set和前面兩個有差異,所以用法也比較不同!
接下來介紹Set的用法!

1.增加元素
https://ithelp.ithome.com.tw/upload/images/20240812/20168211qUVsedl6kP.png
List是用[],Tuple是用(),而Set是用{}
第一段先生成了一個set叫做set1,裡面有A和B
第二段的add是用來新增"一個"元素,輸出的地方看到set裡面多了C!
第三段的update是用來新增"多個"元素,新增一個和多個是不同寫法!
update的部分也要注意,新增的元素還有多用[]來括住!
最後的輸出就看的到我們新增的資料都有在裡面了!
但因為Set是無序性,所以輸出時就會像這樣子~它不會按照我們增加的順序來保持

2.刪除元素
https://ithelp.ithome.com.tw/upload/images/20240812/20168211GsBsoA682P.png
第一段我先輸出set2!
再來第二段用remove來刪除B!這個跟list是一樣用法~如果元素不存在的話會引發錯誤"KeyError"
第三部分的discard,一樣是用來刪除指定元素,但如果元素不存在的話是不會有錯誤的
最後一個是pop!它可以隨機刪除一個元素並回傳,這個之前沒有提過!

給大家看一下remove和discard的差別
https://ithelp.ithome.com.tw/upload/images/20240812/20168211bx8mBc1bWH.png
我把刪除的元素改成set裡面沒有的E
用remove的話果然是引發了KeyError
https://ithelp.ithome.com.tw/upload/images/20240812/20168211v02LdKw9tl.png
這次用discard看看,就沒有發生錯誤,輸出了原本的set

3.檢查元素是否存在
https://ithelp.ithome.com.tw/upload/images/20240812/20168211TTebmSoGrr.png
這跟之前提到的一樣!就是用in來找set裡面有沒有指定的元素
有的話輸出True,沒有的話輸出False

4.集合運算
https://ithelp.ithome.com.tw/upload/images/20240812/20168211LSkfCAwQQn.png
先來解釋一下!

1.聯集:union() 或 " | " ,兩個集合中的"所有"元素
2.交集:intersection() 或 " & " ,兩個集合中"都有"的元素
3.差集:difference() 或 " - " ,假設A-B,就是A集合 扣掉 A和B集合的共有元素
4.對稱差集:symmetric_difference() 或 " ^ " ,兩個集合的"獨有"元素

https://ithelp.ithome.com.tw/upload/images/20240812/20168211ICsxOiHDY5.png
這樣子寫也是可以的!

5.複製&清空組合
https://ithelp.ithome.com.tw/upload/images/20240812/20168211R3WyJ1NMmp.png
copy可以用來複製組合!輸出的set3_copied跟set3一模一樣~
最後的clear可以把集合清空!

最後再稍微提一下!
其實集合的查找、插入、刪除的部分,效率非常的高!
它也能用來進行數學的運算,像是上面提到的聯集、交集和差集之類的~
對於處理數據分析和問題求解非常有幫助!


上一篇
Day 11 Python入門基礎語法與應用-元組Tuple
下一篇
Day 13 Python入門基礎語法與應用-字典Dictionary
系列文
Python入門基礎語法與應用18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言