詳解Python集合數據類型

2021-01-08 米粒教育

本篇介紹Python集合數據類型。集合不同於列表和元組類型,集合存儲的元素是無序且不能重複的,同數學中的集合一樣,集合可以執行集合的並、交、差運算。通過本篇的學習,可以達成如下目標。

● 掌握集合數據類型

● 在程序中使用集合數據類型

在數學概念中,集合是由一個或多個確定的元素構成的整體。具體來說是指具有某種特定性質、具體的或抽象的對象匯總成的集體,這些對象稱為該集合的元素或成員。例如,在整數集合中,數值…、-1、0、1、2…是整數集合的元素。

在Python語言中,集合存儲的元素無序且不能重複,因此可以做字典的鍵。集合有兩種不同的類型,可變集合和不可變集合,可變集合可以添加或刪除元素,但可變集合所存儲的元素不能被哈希,因此不能用做字典的鍵;不可變集合不能添加或刪除元素,但元素是可哈希的,可以做字典的鍵。

1、 集合的聲明和賦值

集合必須用Python提供的工廠函數來聲明,可變集合使用set函數,不可變集合使用frozenset函數。

例1:集合聲明和賦值

例1輸出結果如下圖所示。

從上面的輸出結果可以看出,集合會把傳入的字符串拆分為單個字符作為集合的成員,當傳入列表時,集合會把列表內的元素作為集合成員。從輸出結果還可以看出,集合不允許有重複的元素,例中s1聲明時傳入了「Java」字符串,但集合成員只有{『j』,』a』,』v』},重複的a被刪除。

2、 集合的訪問

集合存儲的元素是無序且不重複的,因此不能像列表、元組一樣通過索引訪問集合存儲的元素。對集合元素的訪問可以使用成員操作符in或not in來判斷某元素是否在集合中。

例2:用成員操作符訪問集合元素

例2輸出結果如下圖所示。

可以使用for循環遍歷集合的元素,在遍歷過程中,元素的顯示順序可能和加入的元素順序不一致。

例3:遍歷集合

例3輸出結果如下圖所示。

3、 集合的更新

集合內置了add、update、remove方法用於集合元素的添加、更新及移除操作。另外也可以通過操作符「-=」從集合中刪除子集合。集合更新操作只適用於通過set創建的可變集合。

add方法用於添加一個集合成員;remove方法用於刪除一個集合成員;update用於從已存在的集合中添加一個或多個成員;操作符「-=」用於刪除集合中的子集合。

例4:集合更新

例4輸出結果如下圖所示。

4、 集合的運算

Python語言的集合類型同數學集合類型一樣,也有求集合的併集、交集、差集、對稱差集運算。

集合的併集運算是把兩個集合合併成一個新的集合,集合合併後重複的成員被刪除。在Python語言中,使用符號『|』或union函數可以執行集合的合併運算。

集合的交集運算是求兩個集合的共有成員,兩個集合執行交集運算後返回新的集合,該集合中的每個元素同時是兩個集合中的成員。在Python語言中,使用符號『&』或intersection函數可以執行集合的交集運算。

集合的差集運算是求A集合與B集合之間的差值,A集合與B集合執行差集運算後返回新的集合,該集合的元素,只屬於集合A,而不屬於集合B。在Python語言中,使用符號『-』或difference函數可以執行集合的差集運算。

集合的對稱差集運算是集合的異或運算,A集合與B集合執行對稱差集運算後返回新的集合,該集合中的元素只能是屬於A集合或B集合的成員,不能同時屬於A和B集合。在Python語言中,使用符號『^』或symmetric_difference函數可以執行集合的對稱差集運算。

例5:集合運算

例5輸出結果如下圖所示。

5、 集合常用的內置方法

前面已介紹了一些有關集合操作的函數和內置方法。下面對一些常用的內置方法做個小結。

表格1 適用於所有集合的內置方法

表格 2 適用於可變集合的內置方法

6、 Python用於操作集合的函數

Python提供的set、frozenset、len函數可用於集合的聲明、返回集合成員個數。

表格 3 Python用於操作集合的函數

課程小結

在Python語言中,集合存儲的元素無序且不能重複。集合有兩種不同的類型,可變集合和不可變集合,可變集合可以添加或刪除元素;不可變集合不能被修改。集合必須用Python提供的工廠函數來聲明,可變集合使用set函數,不可變集合使用frozenset函數。

集合不能像列表、元組一樣通過索引訪問集合存儲的元素,對集合元素的訪問只能使用成員操作符in或not in來判斷某元素是否在集合中。集合內置了add、update、remove方法用於集合元素的添加、更新及移除操作。另外也可以通過操作符「-=」從集合中刪除子集合。集合更新操作只適用於通過set創建的可變集合。

Python語言的集合類型同數學集合類型一樣,也有求集合的併集、交集、差集、對稱差集運算。

相關焦點

  • 好程式設計師Python培訓分享數據類型Set集合實例詳解
    好程式設計師Python培訓分享數據類型Set集合實例詳解,結合實例形式詳細分析了Python數據類型中集合的概念、原理、創建、遍歷、交集、併集等相關操作技巧,下面我們一起來看一下吧。1.概述set與dict類似,但set是一組key的集合
  • python數據結構總結——集合
    python中,列表和元組都是序列的一種,它們的基本特徵,最大區別在於,列表是可變的,而元組則是不可變的。python中還有另外一種序列,叫做集合。python集合集合也是一種序列。它的特點是可變,但是無法通過索引操作。因為集合中的元素是無序的。
  • python 數據類型
    2 組合數據類型2.1 集合類型集合的定義及操作~ 集合用大括號 {} 表示,元素間用逗號分隔;~ 建立集合類型用 {} 或 set();~ 建立空集合類型,必須用 set();~ 集合元素之間無序;』, 666)}B = set(「pypy」){『y』, 『p』}C = {「python」,123,「python」,123}{『python』, 123}集合操作符6 個操作符4 個增強操作符
  • Python -- 數據類型內置方法:列表/元組/集合
    list列表類型內置方法作用:多個裝備、多個愛好、多門課程,甚至是多個女朋友定義方式:[]內用逗號隔開,可以有多個任意數據類型的元素friends_list = ['longzeluola'
  • python數據類型串講(下)
    在上一篇文章中討論了python標準類型中序列的兩種:列表和元祖,下面我們繼續介紹python的第二種標準類型:字典(dict)。1、字典dict顧名思義,字典就像我們日常生活中使用的新華字典,其作用在於根據索引(拼音或偏旁)快速查找到所需內容,而python中的字典也是如此,python中字典的索引稱為「鍵」(key),由python中不可變的數據類型(如字符串、數值等)構成,具有固定(不可變)、唯一(不可重複)性;python中字典的內容稱為「值」,其可以為python中的任意標準數據類型的一種或多種
  • Python入門教程——基本數據類型
    數據類型:一類值。Python中有六個標準數據類型:數字 Number(整型int、浮點型float、布爾Bool、複數complex)字符串 String:Python中的字符串用單引號(『)或雙引號(「)括起來。列表 List:列表是寫在方括號([])之間、用逗號分隔開的元素列表。
  • python數據類型總結——列表
    多個元素的集合也是一種常見的表達方式。python用列表或元組來幫助我們。python列表一系列元素組成一個集合,可能通過索引,對每個元素進行訪問。這種數據類型統稱為序列。在python中,字符串就是一種序列。列表,也是序列的一種。
  • Python入門基礎數據類型之可變數據,列表、集合、字典詳解
    Python3 的六個標準數據類型中可變數據(3 個):List(列表)、Set(集合)、Dictionary(字典)。列表(list):列表是一種有序的集合,可以隨時添加和刪除其中的元素。創建列表:只要把逗號分隔的不同的數據項使用方括號括起來即可。集合(set):集合是無序的不重複元素。
  • Python中不可變類型和可變類型詳解
    Python中不可變類型和可變類型詳解1. 什麼是不可變類型變量對應的值中的數據是不能被修改,如果修改就會生成一個新的值從而分配新的內存空間。不可變類型:數字(int,long,float)布爾(bool)字符串(string)元組(tuple)案例一:結果:兩個不同的數字案例二:結果:兩個不同的數字2.
  • Python數據類型串講(上)
    在計算機科學中,數據是指所有能輸入到計算機並被電腦程式處理的符號的介質的總稱,是用於輸入電子計算機進行處理,具有一定意義的數字字母、符號和模擬量等的統稱。2、數據類型的作用python的標準數據類型共有六種,為什麼要將數據分為不同的類型呢?
  • python基礎教程-第二講-5種常見數據類型詳解
    python常用的數據類型有:整數型,浮點型,字符串,布爾值,空值。整型(int)python的整數包括正整數,0和負整數 。它可以出來任意大的數 。字符串(str)字符串就是若干個字符的集合,由數字,字母,特殊字符,漢字等字符組成 。字符串需要用單引號或雙引號引起來 。
  • 詳解python中的列表,元組,字典以及集合的操作
    在Python中有4種內建的數據結構:列表、元組、字典、集合。今天我們將會學習如何使用它們,以及它們如何使編程變得簡單。在開始講解之前小編在這磨嘰兩句:小編本身就是一名python開發工程師,我自己花了三天時間整理了一套python學習教程,從最基礎的python腳本到web開發,爬蟲,數據分析,數據可視化,
  • python數據類型總結——布爾
    在python中,我們經常會遇到是或否的判斷。根據是或否,來絕對後續的處理邏輯。那麼,是或否在python中,用布爾來描述,英文名為bool。python布爾python中, 可以通過type函數來獲取一個對象的類名,如下:
  • Python之可變數據類型和不可變數據類型
    不可變數據類型數字number(含int、float、bool、complex)、字符串string、元組tuple。在同一代碼塊下,不同變量的值若是相同且是不可變數據類型,那麼它們的id也相同,實際上它們都是同一個值的引用,這既節省了內存又提高了運行效率。
  • 如何在python中引入高性能數據類型?
    作者|skura 來源|AI開發者 python 就像一件藝術珍藏品!python 最大的優點之一是它可以廣泛地選擇模塊和包。它們將 python 的功能擴展到許多流行的領域,包括機器學習、數據科學、web 開發、前端等等。其中最好的一個優點是 python 的內置 collections 模塊。
  • Python之list列表數據類型講解
    前言在python中,list列表數據類型其實就是一個容器,可以放置大量元素的集合。同時,list列表也有很多特點和使用場景,本文主要講解list列表的函數方法。概念list列表是一個集合,一個容器,同Java語言中的數組是一樣的,唯一的不同之處在於,Java中的數組類型只能放置同一種數據類型,而Python中的列表可以放置不同的數據類型。python常用方法1、append添加元素append()函數是將要添加的元素追加到列表的末尾。
  • 簡述Python數據類型!分分鐘讓你看透Python數據
    作為一個程序猿,我們都知道在每一種程式語言中有著數據類型,數據類型是程式語言的基礎,他決定了數據在計算機內存中的存儲方式,每一個變量都對應一種數據類型。在javascript中 有Number數字,String字符串,Boolean布爾,Array數組,Object對象,function函數,Undefined,Null 7種數據類型
  • Redis詳解:sets數據類型及操作
    【IT168 專稿】 set是集合,和我們數學中的集合概念相似,對集合的操作有添加刪除元素,有對多個集合求交並差等操作,操作中key理解為集合的名字。  系列文章:  Redis詳解:strings數據類型及操作  Redis詳解:hashes數據類型及操作  Redis詳解:lists數據類型及操作  Redis的set是string類型的無序集合。set元素最大可以包含(2的32次方)個元素。
  • Python的集合與字典
    Set(集合)集合(set)是一個無序不重複元素的序列。基本功能是進行成員關係測試和刪除重複元素。可以使用大括號 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典。
  • 一、Python之列表、元組、字典和集合詳解
    注意,在使用列表時,雖然可以將不同類型的數據放入到同一個列表中,但通常情況下不這麼做,同一列表中只放入同一類型的數據,這樣可以提高程序的可讀性。四、Python dict字典詳解Python 字典(dict)是一種無序的、可變的序列,它的元素以「鍵值對(key-value)」的形式存儲。相對地,列表(list)和元組(tuple)都是有序的序列,它們的元素在底層是挨著存放的。字典類型是 Python 中唯一的映射類型。