iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
自我挑戰組

30天 從0開始的 Python 全方面應用系列 第 17

[day-17] 認識Python的資料結構!(Part .4)

  • 分享至 

  • xImage
  •  

一、認識"set"(集合)

  甚麼是set呢?簡單來說set就像是一個大雜燴,當一堆資料存在set的元素中,它們 彼此沒有順序的概念 ,在前面[day-15]中我們介紹了list(串列)的元素是依序排列,而set是隨機擺放。

※ set在使用上,採用的是大括號這點要特別注意

二、重複的元素變得不可能?

  甚麼?元素的內容不能重複?沒錯,因為前面提到set的特性是元素沒有固定的順序,因此當我要輸入相同資料時,就可能發生兩筆 資料被合併 的狀況。

oneset = {0, 5, 3, 3}
print(oneset)

輸出:
{0, 3, 5}

在這個範例中,我們可以發現3被合併在一起了,因此當輸入重複的資料,最後也只會有一個存在。

  那為甚麼會出現這種狀況呢?原因是因為Python在集合中搜尋資料時,是透過hash來比對資料是否一致,hash的概念是,為資料產生一個唯一識別碼,當兩者資料一致時,同理hash也會一致,所以因此當你輸入的資料相同時,在輸出的資料也只找的到這個hash。

  為了確保資料不會發生重複的狀況,所以set也不允許放入 "可改變的元素" ,所以我們能選擇的也只有tuple、字串、純量資料、等...。

三、練習的第一步,建立一個空集合

  當我們了解了set的概念後,我們就可以開始建立一個空集合。

oneset = set()

⚠⚠這邊要注意,空集合只能用set()來建立,不可使用{},否則會被定義為其他東西(空字典)。⚠⚠


上一篇
[day-16] 認識Python的資料結構!(Part .3)
下一篇
[day-18] 認識Python的資料結構!(Part .5)
系列文
30天 從0開始的 Python 全方面應用28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言