最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳細(xì)介紹Python中的set集合

 更新時間:2021年09月07日 16:53:26   作者:碼農(nóng)飛哥  
本文詳細(xì)介紹了Python中set集合的基本概念和詳細(xì)用法,希望對讀者朋友們有所幫助。需要的朋友可以參考下面具體的文章內(nèi)容

Python中的set集合

一、集合是什么?

集合是什么呢?相信讀者朋友們哪怕是沒有用過集合這個數(shù)據(jù)類型。也一定在數(shù)學(xué)課堂上聽過集合這個名詞。數(shù)學(xué)中的集合是一個基本概念,說白了一堆不重復(fù)的數(shù)字可以組成一個集合?;氐絇ython中集合的數(shù)據(jù)類型,它可以用來存放多個不重復(fù)的數(shù)據(jù),并且這些數(shù)據(jù)的數(shù)據(jù)類型是不可變類型。這些不可變類型包括數(shù)字,字符串,元組。也就是說可變的數(shù)據(jù)類型如列表,字典是不能作為集合的元素的。
Python中的集合分為兩種,一種是set類型的集合,另一種是fronzenset類型的集合。這兩種類型的集合的區(qū)別是:set集合可變,即可以添加,刪除集合內(nèi)部的元素,而fronzenset集合則不可變。即不能添加,刪除集合內(nèi)部的元素。
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, ('碼農(nóng)', '飛哥')}
print(set_demo)
list = [1, 'test', 1, ('碼農(nóng)', '飛哥')]
print('列表list結(jié)果=', list)
set_demo1 = set(list)
print('生成的set結(jié)果=', set_demo1)

運(yùn)行結(jié)果是:

{2, ('碼農(nóng)', '飛哥'), '1'}
列表list結(jié)果= [1, 'test', 1, ('碼農(nóng)', '飛哥')]
生成的set結(jié)果= {1, ('碼農(nóng)', '飛哥'), 'test'}

可以看到列表list中哪怕有兩個1元素,但是生成set集合之后還是只有一個1元素,也就是說在集合中值相同的元素只會存儲一遍。

2、刪除set集合

刪除set集合可以通過del(setname)函數(shù)來刪除,setname是要刪除的set集合名稱。

3、訪問set集合元素

由于集合中的元素是無序的,因此五香向列表那樣使用下標(biāo)訪問元素,Python中,訪問集合元素最常用的方法是使用循環(huán),將集合中的元素逐一讀取出來。

set_demo = {'1', 2, ('碼農(nóng)', '飛哥')}
for value in set_demo:
    print(value)

運(yùn)行結(jié)果是:

2

('碼農(nóng)', '飛哥')

1

元素的輸出也是無序的。

4、刪除集合中的元素

刪除集合中的元素的方式有兩種:
第一種:通過remove()方法,其語法結(jié)構(gòu)是:setname.remove(element),其中,setname為待操作的set集合,element為需要刪除的元素,如果刪除失敗的話則會報KeyError錯誤。
第二種:通過discard()方法,其使用跟remove()方法一致,只是如果刪除元素失敗的話不會報錯。

set_demo = {'1', 2, ('碼農(nóng)', '飛哥')}
set_demo.remove('1')
print('刪除元素1之后的集合=', set_demo)
set_demo.discard('5')
print('刪除元素5之后的集合=', set_demo)

運(yùn)行結(jié)果是:

刪除元素1之后的集合= {2, ('碼農(nóng)', '飛哥')}
刪除元素5之后的集合= {2, ('碼農(nóng)', '飛哥')}

5、向集合中添加元素

通過add函數(shù)可以向集合中添加元素,其語法結(jié)構(gòu)是:setname.add(element),其中setname是待操作的set集合,element是待添加的元素,只能添加不可變的元素,例如:數(shù)字,元組或者字符串,不能添加列表,字典,set集合這類可變的數(shù)據(jù)。
舉個例子:

set_demo.add('6')
print('添加元素6之后的結(jié)果是=', set_demo)

運(yùn)行結(jié)果是:

添加元素6之后的結(jié)果是= {2, '6', ('碼農(nóng)', '飛哥')}

三、set集合的交并補(bǔ)

在數(shù)學(xué)中集合是有交集并集和補(bǔ)集的。Python中的集合也是有這些概念的。

1、交集

通過&連接兩個set集合就能生成一個新的集合,新集合取兩個原集合的公共元素。

2、并集

通過|連接兩個set集合就能生成一個新的集合,新集合取兩個原集合的全部元素。

3、差集

通過-連接兩個set集合就能生成一個新的集合,新集合取一個集合中有而另一個集合中沒有的元素。

舉個栗子:

set_demo = {1, 3, 5, 6}
set_demo1 = {2, 4, 6}
print("取交集的結(jié)果=", set_demo & set_demo1)
print("取并集的結(jié)果=", set_demo | set_demo1)
print("取差集的結(jié)果=", set_demo - set_demo1)

運(yùn)行結(jié)果是

取交集的結(jié)果= {6}
取并集的結(jié)果= {1, 2, 3, 4, 5, 6}
取差集的結(jié)果= {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調(diào)用update方法之后', set_demo)
set_demo = {1, 3, 5, 6}
print('set_demo調(diào)用union方法之后', set_demo.union(set_demo1))
print('set_demo調(diào)用difference方法之后', set_demo.difference(set_demo1))
print('set_demo調(diào)用__sub__方法之后', set_demo.__sub__(set_demo1))

運(yùn)行結(jié)果是:

set_demo調(diào)用update方法之后 {1, 3, (2, 3), 5, 6, 12}
set_demo調(diào)用union方法之后 {1, 2, 3, 4, 5, 6}
set_demo調(diào)用difference方法之后 {1, 3, 5}
set_demo調(diào)用__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))
print("frozenset_demo的結(jié)果=", frozenset_demo)

運(yùn)行結(jié)果是:

frozenset_demo的類型是= <class 'frozenset'>
frozenset_demo的結(jié)果= frozenset({('碼農(nóng)', '飛哥'), 1, 'test'})

以上就是詳細(xì)介紹Python中的set集合的詳細(xì)內(nèi)容,更多關(guān)于Python中的set集合的資料請關(guān)注腳本之家其它相關(guān)文章!希望大家以后多多支持腳本之家!

相關(guān)文章

  • pytest測試框架+allure超詳細(xì)教程

    pytest測試框架+allure超詳細(xì)教程

    這篇文章主要介紹了pytest測試框架+allure超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • 解決python spyder 突然打不開的問題

    解決python spyder 突然打不開的問題

    這篇文章主要介紹了解決python spyder 突然打不開的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • python使用pil生成縮略圖的方法

    python使用pil生成縮略圖的方法

    這篇文章主要介紹了python使用pil生成縮略圖的方法,涉及Python使用pil模塊操作圖片的技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-03-03
  • Python獲取二維矩陣每列最大值的方法

    Python獲取二維矩陣每列最大值的方法

    下面小編就為大家分享一篇Python獲取二維矩陣每列最大值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python設(shè)置中文界面實(shí)例方法

    python設(shè)置中文界面實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于python設(shè)置中文界面實(shí)例方法,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-10-10
  • python關(guān)閉print輸出信息詳情

    python關(guān)閉print輸出信息詳情

    這篇文章主要介紹了python關(guān)閉print輸出信息詳情,當(dāng)我們遇到需要關(guān)閉print輸出信息的情況,我們可以通過控制sys.stdout來實(shí)現(xiàn)print輸出的開關(guān),下面文章就用一個簡單的例子來實(shí)現(xiàn),需要的小伙伴可以參考一下
    2022-02-02
  • python 解析XML python模塊xml.dom解析xml實(shí)例代碼

    python 解析XML python模塊xml.dom解析xml實(shí)例代碼

    這篇文章主要介紹了分享下python中使用模塊xml.dom解析xml文件的實(shí)例代碼,學(xué)習(xí)下python解析xml文件的方法,有需要的朋友參考下
    2014-02-02
  • 如何將yolo格式轉(zhuǎn)化為voc格式:txt轉(zhuǎn)xml(親測有效)

    如何將yolo格式轉(zhuǎn)化為voc格式:txt轉(zhuǎn)xml(親測有效)

    這篇文章主要介紹了如何將yolo格式轉(zhuǎn)化為voc格式:txt轉(zhuǎn)xml,親測有效,可以使用,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友參考下吧
    2023-12-12
  • python實(shí)現(xiàn)最大優(yōu)先隊列

    python實(shí)現(xiàn)最大優(yōu)先隊列

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)最大優(yōu)先隊列,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • python抓取網(wǎng)頁內(nèi)容示例分享

    python抓取網(wǎng)頁內(nèi)容示例分享

    這篇文章主要介紹了python抓取網(wǎng)頁內(nèi)容示例,在抓取的時候?qū)τ趃bk編碼網(wǎng)頁還需要轉(zhuǎn)化一下,具體看下面的示例吧
    2014-02-02

最新評論

镇宁| 黄大仙区| 晋宁县| 广东省| 玛纳斯县| 朝阳县| 彭泽县| 平昌县| 基隆市| 赤壁市| 武夷山市| 阆中市| 建始县| 历史| 柳州市| 怀远县| 盐边县| 曲阳县| 芜湖县| 天气| 莱芜市| 射洪县| 阳东县| 凤山县| 仁布县| 城口县| 嘉鱼县| 尚志市| 镇雄县| 大洼县| 北海市| 那曲县| 淳安县| 天镇县| 巧家县| 海城市| 肥乡县| 岱山县| 南城县| 新龙县| 含山县|