Python3 自學第8天:集合set

Python3 自學第8天:集合set

截止今天,我們已經瞭解了Python中六大數據類型中的數字(number),字符串(string),列表(list),元組(tuple),字典(dict);

今天我們來了解下最後一種數據類型:集合set,它是一種無序不重複的序列,使用花括號{ }或者set()方法來創建,元素之間用逗號(,)隔開。

創建集合set,格式如下:

set = {value1,value2,...}

set = set(value)

注意:創建一個空集合必須用set()而不是花括號{ },因為花括號{ }是用來創建一個空字典的,實例代碼:

Python3 自學第8天:集合set

Python3 自學第8天:集合set

集合set可以創建一個無序不重複元素集,用來確認邏輯關係,刪除重複數據,還可以計算交集、差集、並集等;

set(iterable) :參數是一個可迭代對象,比如:字符串,列表,元組,字典等

如果將一個字符串單獨做為參數時,set()將會拆分每一個單字符串作為集合的元素,並不是創建只含一個元素的集合

添加元素,實例代碼:

Python3 自學第8天:集合set

更新元素,實例代碼:

Python3 自學第8天:集合set

注意:add()和update(),如果添加/更新的元素在集合中已存在,則該元素只會出現一次,重複的會忽略。

刪除元素,pop() 刪除哪個元素是不確定的,實例代碼:

Python3 自學第8天:集合set

刪除指定的元素,remove() discard(),實例代碼:

Python3 自學第8天:集合set

注意:remove()和discard()的區別:

remove() 方法在移除一個不存在的元素時會發生錯誤,而 discard() 方法不會。

del語句刪除整個集合set對象,實例代碼:

Python3 自學第8天:集合set

清空集合所有元素,實例代碼:

Python3 自學第8天:集合set

判斷元素是否存在,用in , not in ,實例代碼:

Python3 自學第8天:集合set

集合set推導式,實例代碼:

Python3 自學第8天:集合set

多個集合set間的運算:==,!=,,>=,^,&,|,- ,實例代碼:

Python3 自學第8天:集合set

Python3 自學第8天:集合set

集合set常用方法:前面已經瞭解了一些集合的方法了,下面再補充幾個;

複製集合copy(),實例代碼:

Python3 自學第8天:集合set

我們發現copy()後,兩個集合對象的內存地址是不一樣的,說明它們的指向不同,修改時互不影響。

Python3 自學第8天:集合set

difference_update() 和difference() 的區別:difference()返回一個移除相同元素的新集合,而 difference_update()是直接在原來的集合中移除元素,沒有返回值。

Python3 自學第8天:集合set

Python3 自學第8天:集合set

Python3 自學第8天:集合set

Python3 自學第8天:集合set

Python3 自學第8天:集合set

issubset() 和 issuperset區別在於以哪個集合為參照,僅此而已。

集合set()可以過濾列表list中重複的元素,也可以用作類型轉換,實例代碼:

Python3 自學第8天:集合set

補充:set是可變集合,frozenset是不可變集合。

frozenset(iterable) 參數為可迭代對象,可以把列表,字典,元組,字符串 可變集合 轉化為不可變集合;

frozenset()因為是不可變集合,所以它不像set(),是沒有添加,更新,刪除等方法的。

Python3 自學第8天:集合set

到這裡,Python的6個標準數據類型我們都基本瞭解了,如果您有什麼問題,請在評論區留言,我會及時回覆,感謝!如果對這前5種數據類型還不太清楚的朋友們,請查閱:

《 》

《 》

《 》

《 》

《 》

上篇:

下篇:

【極客乾貨】從事IT行業十餘年,在移動互聯網開發,J2EE企業級開發,IOT物聯網,AI人工智能等方面有點技術積累,熟練使用C/C++,Java,Python等編程語言。從2009年開始接觸Python,後續借空閒時間將個人熟悉的技術乾貨系統性分享給大家,也許我的分享會讓你少走一些彎路,如果您覺得還可以,請多多關注,評論和轉發,非常感謝!


分享到:


相關文章: