Python基礎之數據結構(三)——集合

2021-02-19 宇梵文書



最近在整理Python基礎語法部分的筆記,準備邊整理邊分享。本篇是關於集合set{ }的筆記。

Python常用的8種經典數據結構:


特點:集合類型與數學中的集合概念一致,其元素具有確定性、無序性、互異性。
應用:集合的創建。集合用大括號{}表示,元素間逗號分隔。可以使用set()或{}直接創建。使用set()函數創建集合會自動地拆分多個字母組成的字符串。
注意:建立空集合時必須使用set(),因為{}默認創建空字典。
set_0 = set('abcdeffrd1234123') set_1 = {'大','小','點','多'} set_2 = set(('Hello','World')) print('集合',set_0,'\n顯示該數據結構類型結構',type(set_0),      '\n集合2',set_1,'\n集合3',set_2)

集合 {'b', '4', '1', 'c', 'e', 'r', 'd', 'a', '3', 'f', '2'} 顯示該數據結構類型結構 <class 'set'> 集合2 {'多', '大', '小', '點'} 集合3 {'World', 'Hello'}

集合的查詢。使用in可以判斷a是否在集合中,若存在為True,反之為False
print(set_0)print('s' in set_0)print('s' not in set_0)

{'b', '4', '1', 'c', 'e', 'r', 'd', 'a', '3', 'f', '2'}FalseTrue

add()函數可以在集合對象中加入新元素,但若元素已經存在,則無效果。update表示添加(並非修改),是遍歷輸入的每一個元素、逐一添加,並且按照順序添加進集合。
print(set_1)set_1.add('C')print('add()後的集合',set_1)set_1.update('zfy') 

{'多', '大', '小', '點'}add()後的集合 {'小', '多', '大', 'C', '點'}update()後的集合 {'小', 'z', 'y', '多', '大', 'f', 'C', '點'}

remove()函數可以將集合中的元素刪除。如果元素不存在,產生KeyError異常。discard()函數可以刪除集合中指定元素,且使元素不存在也不報錯。pop()可以隨機刪除集合中的一個元素(在交互模式下刪除最後一個元素),更新S,若S為空則產生KeyError異常。
print(set_0)set_0.remove('d')print('刪除指定元素後的集合',set_0)set_0.discard('x')print('刪除不存在',set_0) set_0.pop()print('隨機刪除元素的集合',set_0)set_0.clear()print('刪除所有元素後的集合',set_0)

{'d', 'f', '3', '2', '4', 'a', 'e', 'c', '1', 'r', 'b'}刪除指定元素後的集合 {'f', '3', '2', '4', 'a', 'e', 'c', '1', 'r', 'b'}刪除不存在 {'f', '3', '2', '4', 'a', 'e', 'c', '1', 'r', 'b'}隨機刪除元素的集合 {'3', '2', '4', 'a', 'e', 'c', '1', 'r', 'b'}刪除所有元素後的集合 set()

copy()可以複製集合中的元素並生成一個新的集合
copy_set_1 = set_1.copy()print('\nlen()返回集合的長度',len(copy_set_1),      '\ncopy()生成的集合',copy_set_1)

len()返回集合的長度 8 copy()生成的集合 {'z', '小', '點', 'C', 'f', '多', 'y', '大'}

a = set('apple')b = set('banana')c = {1,2,3}d = {1,2,3,4}e = {1,2,3}print('\n求差集',a-b,      '\n求交集',a&b,      '\n求併集',a|b,      '\n求併集減去交集',a^b,      '\n判斷c是否為d的真子集',c<d,      '\n判斷c與e是否相等',c==e,      '\n判斷c是否為e的子集',c<=e)

求差集 {'e', 'l', 'p'} 求交集 {'a'} 求併集 {'e', 'b', 'l', 'a', 'p', 'n'} 求併集減去交集 {'b', 'n', 'e', 'l', 'p'} 判斷c是否為d的真子集 True 判斷c與e是否相等 True 判斷c是否為e的子集 True

[1]董付國.Python程序設計基礎(第二版)[M].北京:清華大學出版社,2015:42-59[2]劉經緯,陳佳明.創新創業+新工科教學質量提升研究——零基礎學會Python人工智慧[M].北京:首都經濟貿易大學出版社,2020:25-26[3]嵩天.PYE6.1-集合類型及操作v2.5[Z].2020[4]葉維忠.Python編程從入門到精通[M].北京:人民郵電出版社,2018:100-101

相關焦點

  • python數據結構總結——集合
    python中,列表和元組都是序列的一種,它們的基本特徵,最大區別在於,列表是可變的,而元組則是不可變的。python中還有另外一種序列,叫做集合。python集合集合也是一種序列。它的特點是可變,但是無法通過索引操作。因為集合中的元素是無序的。當試圖通過索引進行操作時,會提示TypeError,類型錯誤。集合中的元素還是不可重複的。當嘗試向一個集合中,添加多個重複元素時,重複元素只會存在一個。
  • Python基礎學習—數據結構:列表
    前面我們學習了pyth
  • python教程第七課:Python基礎之list集合
    Python基礎之list集合今天我們主要來看看如何使用python裡面的list集合1、list概念:list是python裡面的一種數據類型,是一種有序的集合列表,具有可變性。定義:使用[] 的方式定義list集合,names = ['a','b','c'] #定義一個 names的listnames = [] #定義一個空的list集合常用方法:a) 查看list集合的長度使用len()len(names) #返回names集合長度3
  • 必須掌握的四種python數據結構,五分鐘快速掌握
    數據結構是相互之間存在一種或多種特定關係的數據元素的集合今天要講python的四個內置數據結構:分別是列表、元組、集合和字典,每種結構數據都有自己的特點,應用於不同情況3、(set)集合中的元素是無序且唯一的,這個集合和我們高中數學說的集合有相似之處,集合中的元素無序且唯一4、(dict)字典中的元素無序,內容可以修改,字典和我們常見的字典概念相似,通過關鍵字產找值,關鍵字和值之間產生一種映射關係,通過關鍵字可以找到對應的值,以key-value鍵值對存儲.
  • python數據分析專題 (9):numpy基礎
    NumPy(Numerical Python的簡稱)是高性能科學計算和數據分析的基礎包。NumPy最重要的一個特點就是其N維數組對象(即ndarray),該對象是一個快速而靈活的大數據集容器。新手可能不理解這句話的含義,這個需要慢慢去理解 。總之,知道numpy是python數據分析最重要的基礎包就可以了。
  • 小白學 Python(12):基礎數據結構(字典)(上)
    人生苦短,我選Python前文傳送門小白學 Python(1):開篇小白學 Python(2):基礎數據類型(上)小白學 Python(3):基礎數據類型(下)小白學 Python(4):變量基礎操作小白學 Python(5):基礎運算符(上)小白學 Python(6):基礎運算符(下)小白學 Python(7):基礎流程控制(上)小白學 Python(8):基礎流程控制(下)小白學 Python(9):基礎數據結構(列表)(上)小白學 Python(10):
  • python基礎知識變量、運算和數據類型
    昨天搭建好juypter notebook,並錄製了第一堂python的課程,簡單講解了python的歷史,以及python可以幫助我們如何提供效率。= id(y)時 → False 知識點4:Python 基礎數據結構數據結構:包含多個數據的數據集,不同類型數據集對應不同的數據排列方式。數據集中的數據既可以是單個基礎數據(數字和字符串),也可以是不同類型的數據集。對於一門程式語言來說,數據結構就是其根基,了解掌握數據結構對於學好這門語言至關重要。
  • Python基礎知識儲備,揭穿List集合的神秘面紗
    pythonkai f什麼是集合前面章節存儲數據用的是變量,但是變量只能存儲一個數據,如果有一組數據,怎麼辦?就需要使用到集合,集合是用來存儲一組數據的,集合是一組有序、可變的數據集合。python開發List集合List(列表) 是 Python 中使用最頻繁的數據類型,List可以完成大多數集合類的數據結構實現
  • python語法基礎
    學一門語言,基礎語法一定要紮實。很多入門的編程書籍,都會花大量的篇幅來介紹基礎語法,對於毫無編程經驗的新手而言,這樣的書籍無疑是很友好的,但是對於有編程經驗的開發者而言,很多的基礎語法是通用的, 只需花費較少的時間瀏覽下基礎語法,將精力集中在語言獨有的特徵上即可。
  • 一日一技:python中4大數據結構常用接口簡介
    具體到python中數據結構的選擇運用,雖然有很多類型可供選擇:除了基本的列表、字典、集合和元組4個基本類型外,collections模塊中提供了很多定製化的數據結構,還有專用的堆heapq和枚舉enum等。誠然,特定數據結構在某些應用場景下可能有神奇的效果,但把基礎數據類型用到極致也可堪稱是絕招。
  • 數據挖掘之Python基礎(一)基本數據類型與數據結構
    前言最近工作和研究涉及到數據挖掘和機器學習,出於歸納和總結知識的目的寫下這一系列的文章,這一系列文章將會包括Python的基本數據類型和數據結構,函數和面向對象相關的知識,然後會介紹數據挖掘和機器學習經常用到的Numpy,Pandas。也希望這一系列文章能夠幫助剛剛接觸Python或者數據挖掘和機器學習的人。
  • 學好Python,必須熟練掌握的幾種數據結構【文末送書】
    python提供了多種數據結構可供選擇,除了全局的列表、字典、集合和元組4個基本類型外,collections模塊提供了一些定製化的數據結構集合類數據結構,array和heapq模塊則分別提供了數組和堆數據結構,本文就這4種類型加以分別介紹。本文所指數據結構特指容器類數據結構,不包含int、str、boolean等單數據類型。
  • python3基礎之集合(set)
    集合也也也也是python內置的一種數據結構,它是一個無序且元素不重複的序列。這裡有兩個關鍵詞一個是無序,這一點和字典是一樣的,另一個關鍵詞是元素不重複,這一點和字典的key(鍵)是一樣的。這麼看來集合和字典還真像,事實上他們長得也很像:集合和字典一樣也是用{}包起來的,那麼問題來了,如果只寫一個{}那它是集合還是字典呢?{}裡沒有元素創建的是字典,那麼問題又來了,空集合又該怎麼創建呢?我們可以使用set()函數創建。既然集合已經創建出來了,接著就看看集合的一些用法吧。
  • Python基礎之數據結構(四)——字典
    最近在整理Python基礎語法部分的筆記,準備邊整理邊分享。
  • 「對比Python學習Go」- 高級數據結構下篇
    根據集合的底層數據結構分析,它解決哈希衝突也是使用的「開發尋址法」。# set.add(obj) 添加集合元素# set.remove(obj) 刪除集合元素# set.update(set) 合併集合# set.pop() 隨機刪除一個元素,並返回該元素獨有數據結構除了類數組和哈希結構外,Go 還有自己獨有的一些結構。
  • 了解這些python數據結構,你也可以進BAT
    了解了數據結構,你就能把python代碼寫的如絲般順滑。  現如今在很多大廠面試中,面試官都會著重考察候選人對數據結構的認識程度和應用水平,為什麼呢?因為在實際工作過程中,數據結構就像代碼的地基一樣,地基不牢地動山搖。只有充分理解數據機構,才能在工作中應用的得心應手。Python中有哪些數據結構呢?
  • Python基石 | Python中的數據結構詳解
    了解Python提供的不同數據結構,包括列表、元組等介紹數據結構聽起來是一個非常直截了當的話題,但許多數據科學和分析的新手並不知道它是什麼,當我詢問這些人關於Python中不同的數據結構以及它們是如何工作的時,他們一片空白。
  • Simple is better than complex——python中4大數據結構常用接口簡介
    具體到python中數據結構的選擇運用,雖然有很多類型可供選擇:除了基本的列表、字典、集合和元組4個基本類型外,collections模塊中提供了很多定製化的數據結構,還有專用的堆heapq和枚舉enum等。誠然,特定數據結構在某些應用場景下可能有神奇的效果,但把基礎數據類型用到極致也可堪稱是絕招。
  • Python基礎之os和數據結構
    今天總結了下Python的基礎,發現還是有很多基礎需要鞏固,直接把學習的內容放上來。
  • python系列(struct-數據結構之二進位數據結構)
    函數與結構類一組模塊級函數可用於處理結構化值以及Struct類。格式說明符從其字符串格式轉換為編譯表示形式,類似於處理正則表達式的方式。包裝和拆包Structs支持將數據打包成字符串,並使用格式說明符從字符串中解壓縮數據,格式說明符由表示數據類型和可選計數和字節順序指示符的字符組成。