甚麼是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()來建立,不可使用{},否則會被定義為其他東西(空字典)。⚠⚠