




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第詳細介紹Python中的set集合目錄Python中的set集合一、集合是什么?二、set集合怎么用?1、創(chuàng)建set集合2、刪除set集合3、訪問set集合元素4、刪除集合中的元素5、向集合中添加元素三、set集合的交并補1、交集2、并集3、差集四、set中的其他方法五、frozenset集合
Python中的set集合
一、集合是什么?
集合是什么呢?相信讀者朋友們哪怕是沒有用過集合這個數(shù)據(jù)類型。也一定在數(shù)學課堂上聽過集合這個名詞。數(shù)學中的集合是一個基本概念,說白了一堆不重復的數(shù)字可以組成一個集合?;氐絇ython中集合的數(shù)據(jù)類型,它可以用來存放多個不重復的數(shù)據(jù),并且這些數(shù)據(jù)的數(shù)據(jù)類型是不可變類型。這些不可變類型包括數(shù)字,字符串,元組。也就是說可變的數(shù)據(jù)類型如列表,字典是不能作為集合的元素的。
Python中的集合分為兩種,一種是set類型的集合,另一種是fronzenset類型的集合。這兩種類型的集合的區(qū)別是:set集合可變,即可以添加,刪除集合內部的元素,而fronzenset集合則不可變。即不能添加,刪除集合內部的元素。
set集合的定義是{element1,element2,...,elementn},其中,element1~elementn表示集合中的元素,個數(shù)沒有限制。每個元素都是唯一的。
二、set集合怎么用?
1、創(chuàng)建set集合
創(chuàng)建set集合的方式有兩種:
第一種:通過{}方式創(chuàng)建,其語法格式是:{element1,element2,...,elementn}
第二種:通過set函數(shù),其語法格式是:set(iterable)其中iterable不傳的話,則會創(chuàng)建一個空的set對象。傳入的iterable必須是可以遍歷的序列,例如字符串,列表等。舉個例子:
set_demo={'1',2,('碼農','飛哥')}
print(set_demo)
list=[1,'test',1,('碼農','飛哥')]
print('列表list結果=',list)
set_demo1=set(list)
print('生成的set結果=',set_demo1)
運行結果是:
{2,('碼農','飛哥'),'1'}
列表list結果=[1,'test',1,('碼農','飛哥')]
生成的set結果={1,('碼農','飛哥'),'test'}
可以看到列表list中哪怕有兩個1元素,但是生成set集合之后還是只有一個1元素,也就是說在集合中值相同的元素只會存儲一遍。
2、刪除set集合
刪除set集合可以通過del(setname)函數(shù)來刪除,setname是要刪除的set集合名稱。
3、訪問set集合元素
由于集合中的元素是無序的,因此五香向列表那樣使用下標訪問元素,Python中,訪問集合元素最常用的方法是使用循環(huán),將集合中的元素逐一讀取出來。
set_demo={'1',2,('碼農','飛哥')}
forvalueinset_demo:
print(value)
運行結果是:
('碼農','飛哥')
元素的輸出也是無序的。
4、刪除集合中的元素
刪除集合中的元素的方式有兩種:
第一種:通過remove()方法,其語法結構是:setname.remove(element),其中,setname為待操作的set集合,element為需要刪除的元素,如果刪除失敗的話則會報KeyError錯誤。
第二種:通過discard()方法,其使用跟remove()方法一致,只是如果刪除元素失敗的話不會報錯。
set_demo={'1',2,('碼農','飛哥')}
set_demo.remove('1')
print('刪除元素1之后的集合=',set_demo)
set_demo.discard('5')
print('刪除元素5之后的集合=',set_demo)
運行結果是:
刪除元素1之后的集合={2,('碼農','飛哥')}
刪除元素5之后的集合={2,('碼農','飛哥')}
5、向集合中添加元素
通過add函數(shù)可以向集合中添加元素,其語法結構是:setname.add(element),其中setname是待操作的set集合,element是待添加的元素,只能添加不可變的元素,例如:數(shù)字,元組或者字符串,不能添加列表,字典,set集合這類可變的數(shù)據(jù)。
舉個例子:
set_demo.add('6')
print('添加元素6之后的結果是=',set_demo)
運行結果是:
添加元素6之后的結果是={2,'6',('碼農','飛哥')}
三、set集合的交并補
在數(shù)學中集合是有交集并集和補集的。Python中的集合也是有這些概念的。
1、交集
通過連接兩個set集合就能生成一個新的集合,新集合取兩個原集合的公共元素。
2、并集
通過|連接兩個set集合就能生成一個新的集合,新集合取兩個原集合的全部元素。
3、差集
通過-連接兩個set集合就能生成一個新的集合,新集合取一個集合中有而另一個集合中沒有的元素。
舉個栗子:
set_demo={1,3,5,6}
set_demo1={2,4,6}
print("取交集的結果=",set_demoset_demo1)
print("取并集的結果=",set_demo|set_demo1)
print("取差集的結果=",set_demo-set_demo1)
運行結果是
取交集的結果={6}
取并集的結果={1,2,3,4,5,6}
取差集的結果={1,3,5}
四、set中的其他方法
通過dir(set)可以查看set集合中的所有方法。一共有如下方法:
['__and__','__class__','__contains__','__delattr__','__dir__','__doc__','__eq__','__format__','__ge__','__getattribute__','__gt__','__hash__','__iand__','__init__','__init_subclass__','__ior__','__isub__','__iter__','__ixor__','__le__','__len__','__lt__','__ne__','__new__','__or__','__rand__','__reduce__','__reduce_ex__','__repr__','__ror__','__rsub__','__rxor__','__setattr__','__sizeof__','__str__','__sub__','__subclasshook__','__xor__','add','clear','copy','difference','difference_update','discard','intersection','intersection_update','isdisjoint','issubset','issuperset','pop','remove','symmetric_difference','symmetric_difference_update','union','update']
方法的命名比較規(guī)范,按照英文名都能猜測出方法的作用,在此就不在贅述每個方法的含義了。直接舉例說明下:
set_demo={1,3,5,6}
set_demo1={2,4,6}
set_demo.update({12,(2,3)})
print('set_demo調用update方法之后',set_demo)
set_demo={1,3,5,6}
print('set_demo調用union方法之后',set_demo.union(set_demo1))
print('set_demo調用difference方法之后',set_demo.difference(set_demo1))
print('set_demo調用__sub__方法之后',set_demo.__sub__(set_demo1))
運行結果是:
set_demo調用update方法之后{1,3,(2,3),5,6,12}
set_demo調用union方法之后{1,2,3,4,5,6}
set_demo調用difference方法之后{1,3,5}
set_demo調用__sub__方法之后{1,3,5}
五、frozenset集合
frozenset集合是set集合的不可變版本,與set集合相比,frozenset集合中的元素不可變,也就是沒有添加元素,刪除元素的方法。
創(chuàng)建一個frozenset集合的方式是通過frozenset()方法。其語法格式是:frozenset(iterable)其中iterable不傳的話,則會創(chuàng)建一個空的set對象。傳入的iterable必須是可以遍歷的序列,例如字符串,列表等。
frozenset_demo=frozenset(list)
print("frozenset_demo的類型是=",type(frozenset_demo))
pr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療行業(yè)合同評審與管理流程
- 高端房地產(chǎn)客服團隊派遣服務合同
- 房屋租賃合同
- DB32/T 4326-2022城市應急準備能力評估規(guī)范
- DB32/T 4181-2021行政執(zhí)法案卷制作及評查規(guī)范
- DB32/T 3892-2020法人和其他組織公共信用信息服務規(guī)范
- DB32/T 3841-2020水利工程建筑信息模型設計規(guī)范
- DB32/T 3761.1-2020新型冠狀病毒肺炎疫情防控技術規(guī)范第1部分:醫(yī)療機構
- DB32/T 3678-2019電梯統(tǒng)一應急救援標識
- DB32/T 3567-2019內河船舶大氣污染物排放清單編制技術指南
- 2025年耐熱玻璃器皿行業(yè)深度研究報告
- 護理影像學試題及答案總結
- DB65-T 4623-2022 分散式風電接入電力系統(tǒng)管理規(guī)范
- 水電使用合同協(xié)議書
- 退休終止勞動合同協(xié)議書
- 中國獸藥典三部 2020年版
- 實驗室質量管理體系與試題
- 上海市社區(qū)工作者管理辦法
- 國開(甘肅)2024年春《地域文化(專)》形考任務1-4終考答案
- DB51∕T 2858-2021 農業(yè)科技成果效益計算方法及規(guī)程
- 高三理科數(shù)學第一輪復習計劃
評論
0/150
提交評論