詳解Python集合數據類型

2021-01-15 米粒教育

本篇介紹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數據類型總結——列表
    多個元素的集合也是一種常見的表達方式。python用列表或元組來幫助我們。python列表一系列元素組成一個集合,可能通過索引,對每個元素進行訪問。這種數據類型統稱為序列。在python中,字符串就是一種序列。列表,也是序列的一種。可以用中括號來聲明列表。
  • Python之list列表數據類型講解
    前言在python中,list列表數據類型其實就是一個容器,可以放置大量元素的集合。同時,list列表也有很多特點和使用場景,本文主要講解list列表的函數方法。概念list列表是一個集合,一個容器,同Java語言中的數組是一樣的,唯一的不同之處在於,Java中的數組類型只能放置同一種數據類型,而Python中的列表可以放置不同的數據類型。
  • Python數據類型之集合set
    # 集合:用來存儲一個無序的不重複的元素序列# 集合的標識也是大括號{},中間的元素使用逗號","隔開# 集合的創建方式:# set(序列)# s = {"123","qwe"}# 創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典# s = {},這種是創建空的字典# 集合的兩大功能:# 集合可以實現去重的功能
  • 「python學習手冊-筆記」003.數值類型
    ,python的數字類型還包括布爾類型.小數python2.4之後引入了小數這種數據類型,正式名稱叫做Decimal. 需要注意的是python中的Decimal類型和浮點數不是一個東西. 小數很像浮點數,但是小數有固定的位數和小數點.比如,我們可以使用小數對象實現一個只有兩位小數位精度的浮點數.
  • Python數據類型串講(中)
    x='python ''t' in x'i' in x以上代碼執行結果為:序列相關BIFlen():返回序列所含元素的數量max():返回元素中的最大值min():返回元素中的最小值x='python'len(x)max(x)min(x)當序列中元素的類型是字符串型時,使用max()或min
  • Python基礎學習之常用六大數據類型
    剛開始學習一門程式語言,除了了解運行環境與語言類型之外,最基本還是從該語言的基本數據類型開始學起。Python六大常用數據類型: int 整數 float 浮點數 str 字符串 list 列表 tuple 元組 dict 字典講解這些先說一下python中的變量與變量名。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    因篇幅有限,以下展示的只是課程裡部分內容如對python課程有更多疑問 請諮詢客服 1零基礎入門全能班 01 –python簡介 02 第一個程序 03-python執行方式和pycharm設置 04-程序的注釋和算術運算符 05 程序執行原理 06變量的使用以及類型 07
  • numpy中的數據類型對象有哪些
    Numpy數據類型numpy是一個python擴展包,它可以為我們提供更精確的科學技術,更強大的數學能力。為此,numpy定義了比python更豐富的數據類型來達成目的。數據類型以上就是一系列Numpy中提供的數據類型。需要理解的是,Numpy中的數據類型,和python本身的數據類型是不同的。Numpy中的數據類型,實質是數據類型對象dtype的實例。
  • Python數據類型之字典dict
    # 字典是一種可變容器類型,可存儲任意類型對象# 字典以鍵值對存儲數據,key-value形式,鍵值之間使用冒號:分隔,每個鍵值中間用逗號,分隔# 字典包含在大括號,花括號{}中# python中鍵必須是不可變的,但值可取任何數據類型# 元組可以作為 dict 的 key,但列表不能作為元組的 key,dict 要求
  • Python數據類型之列表list
    # 列表是python中最基本的數據結構,它是一個有序序列,序列中的每個元素都分配一個數字(位置,索引)# 1、我們可以使用 方括號,中括號[]來創建列表# 2、我們可以直接將序列放在list(seq)
  • 完美契合人類習慣的Python變量和基本數據類型
    從我的經驗來看,對python的每個變量都要賦初值,否則會給你意想不到的「驚喜」。如下面的「NameError」所示。變量必須賦給初值數據類型是對現實世界數字對象的抽象上面的程序中,我們說A6688是字符類型,i是整數類型,是否還有其他數據類型?
  • python的核心數據類型有哪些?
    數據類型數字: int,long,float,complex,bool字符: str,unicode列表: list字典: dict元組: tuple文件: file其他類型: 集合(set),frozenset,類類型,None類型轉換str(),repr()或format(): 將非字符類型數據轉換為字符int(): 轉為整數float
  • 超全Anaconda(Python整合包)導修(圖文詳解)
    變量和數據類型變量和數據類型是所有程式語言的基本組成部分。基於不同數據的屬性,Python共有六種數據類型。其中,列表(list),字典(dictionary),集合(set),還有元組(tuple)是Python中的集合數據類型。
  • Python 程式設計師如何防止數據被修改?
    概念解讀數據拷貝會涉及到Python中對象、可變類型、引用這3個概念,先來看看這幾個概念,只有明白了它們才能更好地理解拷貝到底是怎麼一回事。Python對象在Python中,對對象有一種很通俗的說法,萬物皆對象。說的就是構造的任何數據類型都是一個對象,無論是數字、字符串、還是函數,甚至是模塊、Python都對當做對象處理。
  • Python中有關集合的講解
    一:集合(set)集合(set)和字典(dict)一樣,也是無序的序列,但是需要注意的是,集合中的元素是不重複的。你可以將Python中的集合和數學概念上的「集合」進行類比,Python中的集合具有數學中「集合」的無序性和互異性。
  • Python輸出數據print,獲取輸入數據input,基礎入門
    python的輸入和輸出一、print輸出print 默認輸出是換行的,如果要實現不換行需要在變量末尾加上 end=""如:print把內容輸出到文件二、input輸入print是輸出,input接收鍵盤的輸入input()函數,是python的內置函數,接收任意數據類型的輸入,將所有輸入的數據,定義為字符串來進行處理
  • Numpy基礎:創建ndarray及數據類型
    它接受一切序列型的對象(包括其他數組),然後產生一個新的含有傳入數據的Numpy數組。np.array會嘗試為新建的這個數組推斷出一個較為合適的數據類型。數據類型保存在一個特殊的dtype對象中。其他一些可以新建數組的函數。比如zeros和ones分別可以創建指定長度或形狀的全0或全1數組。empty可以創建一個沒有任何具體值的數組。
  • python while循環、數據類型
    alien_2 = {'color': 'red', 'points': 15}aliens = [alien_0, alien_1, alien_2]for alien in aliens:print(alien) 6、在字典裡嵌套列表列如:favorite_languages = {'jen': ['python
  • python:pop函數詳解 - 二進位01
    pop函數詳解今天我為大家講解python中pop函數的使用。#python#簡介——pop()函數是python解釋器的內置方法,可作用於列表,字典。popitem喜歡python的小夥伴關注我吧
  • Python學習第89課-數據可視化之直方圖繪製
    【每天幾分鐘,從零入門python編程的世界!】假設你想投資某一個城市的房地產,你肯定需要對這個城市的人口分布、增長潛力做一個調查,這時我們就需要做一個直方圖(histogram plot)。bin的說明:bin在英式英語中意思是「垃圾桶」,當我們的數據非常多的時候,每一個數據都對應一個id,比如這個例子中,每一個年齡數據都對應一個人,如果每一個數據id都畫一個柱狀圖,那顯然畫出來非常多,不利於展示和分析。