詳細介紹Python中的set集合_第1頁
詳細介紹Python中的set集合_第2頁
詳細介紹Python中的set集合_第3頁
詳細介紹Python中的set集合_第4頁
詳細介紹Python中的set集合_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第詳細介紹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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論