python set集合使用方法解析
這篇文章主要介紹了python set集合使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
定義
定義:在{}中用逗號(hào)隔開(kāi),集合具備以下3個(gè)特點(diǎn):
1.每個(gè)元素必須是不可變類(lèi)型
2.集合內(nèi)沒(méi)有重復(fù)元素
3.集合內(nèi)元素?zé)o序
my_set = {1, 2, 3, 4} # 本質(zhì)上 my_set = set({1, 2, 3, 4}) # 注意1:列表是索引對(duì)應(yīng)值,字典是key對(duì)應(yīng)值,均可以取得單個(gè)值. # 而集合類(lèi)型既沒(méi)有索引也沒(méi)有key值相對(duì)應(yīng),所以無(wú)法取得單個(gè)的值.對(duì)集合來(lái)說(shuō) # 主要功能在于去重與關(guān)系元素,沒(méi)有取出單個(gè)值的需求 # 注意2:{}既被用于定義字典也被用于定義集合.但是字典內(nèi)的元素必須以key:value的形式. # 如何準(zhǔn)確的定義一個(gè)空集合? my_set = {} print(type(my_set)) my_set = set() print(type(my_set))>>> <class 'dict'> <class 'set'>
類(lèi)型轉(zhuǎn)換
但凡能被for循環(huán)遍歷輸出的值(輸出的值不能為可變數(shù)據(jù)類(lèi)型)
my_set = set([1, 2, 3, 4, 5]) >>>{1, 2, 3, 4, 5} my_set = set('string') >>>{'t', 's', 'g', 'i', 'r', 'n'} my_set = set((1, 2, 3, 4, 1)) >>>{1, 2, 3, 4} my_set = set({'name':'yyh'}) >>>{'name'}
關(guān)系運(yùn)算
friends1 = {'Albert', 'Tony', 'John', 'Egon', 'Sean'} friends2 = {'Sean', 'Sor', 'Egon'} print(friends1 | friends2) # 求合集 print(friends1 & friends2) # 求交集 print(friends1 - friends2) # 求差集 friends1中獨(dú)有的 print(friends2 - friends1) # 求差集 friends2中獨(dú)有的 print(friends1 ^ friends2) # 對(duì)稱(chēng)差集(去掉共有的好友后的合集) print(friends1 == friends2) # 集合是否相等 print({1, 2, 3} >= {1, 2, 3}) # 包含關(guān)系 print({1, 2, 3} > {1, 2}) # 真包含關(guān)系 print({1, 2} < {1, 2, 3}) # 真子集 print({1, 2, 3} <= {1, 2, 3}) # 子集
去重
# 集合去重復(fù)有局限性,僅適用于不可變數(shù)據(jù)類(lèi)型 # 集合本身是無(wú)序的, 去重之后無(wú)法保留原來(lái)的順序 my_list = ['a', 'b', 1, 'a', 'b'] my_set = set(my_list) # 列表轉(zhuǎn)集合 print(my_set) my_list = list(my_set) # 集合轉(zhuǎn)列表 print(my_list) # 去除了重復(fù),但是打亂了順序
# 針對(duì)可變類(lèi)型,并且保證順序則需要自己寫(xiě)代碼實(shí)現(xiàn) my_list = [ {'name': 'lili', 'age': 18, 'sex': 'male'}, {'name': 'jack', 'age': 73, 'sex': 'male'}, {'name': 'tom', 'age': 20, 'sex': 'female'}, {'name': 'lili', 'age': 18, 'sex': 'male'}, {'name': 'lili', 'age': 18, 'sex': 'male'}, ] new_list = [] for i in my_list: if i not in new_list: new_list.append(i) print(new_list)
練習(xí)
pythons = {'jason', 'egon', 'kevin', 'ricky', 'gangdan', 'biubiu'} linuxs = {'kermit', 'tony', 'gangdan'} print(f'即報(bào)名了python又報(bào)名了linux的學(xué)員有{pythons & linuxs}') print(f'所有報(bào)名的學(xué)員{pythons | linuxs}') print(f'只報(bào)名了python的學(xué)員{pythons - linuxs}') print(f'只報(bào)名了其中一門(mén)的學(xué)員{pythons ^ linuxs}')
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python模擬enum枚舉類(lèi)型的方法小結(jié)
這篇文章主要介紹了python模擬enum枚舉類(lèi)型的方法,實(shí)例總結(jié)了python模擬enum枚舉類(lèi)型的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04基于python實(shí)現(xiàn)在excel中讀取與生成隨機(jī)數(shù)寫(xiě)入excel中
最近接個(gè)項(xiàng)目,項(xiàng)目要求是這樣的:在一份已知的excel表格中讀取學(xué)生的學(xué)號(hào)與姓名,再將這些數(shù)據(jù)放到新的excel表中的第一列與第二列,最后再生成隨機(jī)數(shù)作為學(xué)生的考試成績(jī),具體實(shí)現(xiàn)代碼大家參考下本文2018-01-01Python的Django框架中模板碎片緩存簡(jiǎn)介
這篇文章主要介紹了Python的Django框架中模板碎片緩存,包括給cache標(biāo)簽傳遞參數(shù)等方法,需要的朋友可以參考下2015-07-07Python Lambda函數(shù)使用總結(jié)詳解
這篇文章主要介紹了Python Lambda函數(shù)使用總結(jié)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python基礎(chǔ)學(xué)習(xí)之常見(jiàn)的內(nèi)建函數(shù)整理
所謂的內(nèi)建函數(shù),可以直接使用,而不需要import。下面這篇文章主要給大家整理介紹了關(guān)于Python基礎(chǔ)學(xué)習(xí)之常見(jiàn)的一些內(nèi)建函數(shù),文中通過(guò)示例代碼為大家介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09利用Python代碼實(shí)現(xiàn)數(shù)據(jù)可視化的5種方法詳解
在數(shù)據(jù)科學(xué)中,有多種工具可以進(jìn)行可視化。下面這篇文章主要給大家介紹了關(guān)于利用Python代碼實(shí)現(xiàn)數(shù)據(jù)可視化的5種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2018-03-03python目標(biāo)檢測(cè)yolo2詳解及預(yù)測(cè)代碼復(fù)現(xiàn)
這篇文章主要為大家介紹了python目標(biāo)檢測(cè)yolo2詳解及其預(yù)測(cè)代碼復(fù)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05