python set集合使用方法解析
這篇文章主要介紹了python set集合使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
定義
定義:在{}中用逗號(hào)隔開,集合具備以下3個(gè)特點(diǎn):
1.每個(gè)元素必須是不可變類型
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è)值.
# 而集合類型既沒(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'>
類型轉(zhuǎn)換
但凡能被for循環(huán)遍歷輸出的值(輸出的值不能為可變數(shù)據(jù)類型)
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ì)稱差集(去掉共有的好友后的合集)
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ù)類型 # 集合本身是無(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ì)可變類型,并且保證順序則需要自己寫代碼實(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)名了其中一門的學(xué)員{pythons ^ linuxs}')
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python利用遞歸實(shí)現(xiàn)文件的復(fù)制方法
今天小編就為大家分享一篇Python利用遞歸實(shí)現(xiàn)文件的復(fù)制方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
Python隨機(jī)生成數(shù)模塊random使用實(shí)例
這篇文章主要介紹了Python隨機(jī)生成數(shù)模塊random使用實(shí)例,本文直接給出示例代碼,需要的朋友可以參考下2015-04-04
詳解Appium+Python之生成html測(cè)試報(bào)告
這篇文章主要介紹了詳解Appium+Python之生成html測(cè)試報(bào)告,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
python 請(qǐng)求服務(wù)器的實(shí)現(xiàn)代碼(http請(qǐng)求和https請(qǐng)求)
本篇文章主要介紹了python 請(qǐng)求服務(wù)器的實(shí)現(xiàn)代碼(http請(qǐng)求和https請(qǐng)求),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python使用pysmb庫(kù)訪問(wèn)Windows共享文件夾的詳細(xì)教程
本教程旨在幫助您使用pysmb庫(kù),通過(guò)SMB(Server Message Block)協(xié)議,輕松連接到Windows共享文件夾,并列舉其中的文件與文件夾,此外,我們還將簡(jiǎn)要介紹如何下載和上傳文件,以及如何處理可能遇到的連接錯(cuò)誤,需要的朋友可以參考下2024-12-12
在echarts中圖例legend和坐標(biāo)系grid實(shí)現(xiàn)左右布局實(shí)例
這篇文章主要介紹了在echarts中圖例legend和坐標(biāo)系grid實(shí)現(xiàn)左右布局實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
深入理解Python中的 __new__ 和 __init__及區(qū)別介紹
這篇文章主要介紹了深入理解Python中的 __new__ 和 __init__及區(qū)別介紹,這兩個(gè)方法的主要區(qū)別在于:__new__ 負(fù)責(zé)對(duì)象的創(chuàng)建而 __init__ 負(fù)責(zé)對(duì)象的初始化。具體內(nèi)容詳情大家跟隨小編一起看看吧2018-09-09
PyQt5打開文件對(duì)話框QFileDialog實(shí)例代碼
這篇文章主要介紹了PyQt5打開文件對(duì)話框QFileDialog實(shí)例代碼,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02

