一、創(chuàng)建集合

大荔網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
創(chuàng)建非空集合:集合中set括號中需要的參數(shù)的數(shù)據(jù)類型有:序列(包括字符串、列表、元組),字典可以轉(zhuǎn)為集合,注意數(shù)值類型不能作為集合的參數(shù),如int類型。
二、添加元素
add() 方法是將要添加的元素作為一個(gè)整體添加到集合中
update() 方法是把要傳入的元素拆分成單個(gè)字符,存于集合中,并去掉重復(fù)的
三、刪除元素
集合的刪除操作使用的方法跟列表是一樣的,使用的也是 remove 方法,只能單個(gè)刪除
四、遍歷集合
五、集合與字符串、列表、元組互轉(zhuǎn),集合轉(zhuǎn)字典
六、查找元素并刪除
函數(shù)原型: a.discard(b)
參數(shù)說明:a為一個(gè)set類型的變量;b表示要查找并刪除的元素
函數(shù)作用:在集合setVar中查找element元素,如果存在則刪除;如果沒找到,則什么也不做。該函數(shù)沒有返回值
七、pop用法
函數(shù)原型: set1.pop() ? ? 刪除并返回集合set1中的第一個(gè)元素,如果為空引發(fā)KeyError錯(cuò)誤+
八、clear、copy和len的用法
clear ????方法用于清空集合中的所有元素
copy ????方法用于集合拷貝
len ????跟求序列的長度的函數(shù)len()是一樣的,返回的是集合中有多少個(gè)元素
九、求集合的交集、并集、差集和difference的用法
求集合的 交集 使用的符號是 “”
求集合的 并集 用的是符號 “|”
求集合的 差集 使用的符號是減號 “-”
difference? ? 等價(jià)于集合的差集 ,查看兩個(gè)集合的不同之處。這種不同指的是集合s1相對于集合s2,不同的地方,也就是所有在集合s1中,而不再集合s2中的的元素組成的新集合
十、運(yùn)算符判斷集合間關(guān)系和issuperset、issubset的用法
集合可以使用大于()、小于()、大于等于(=)、小于等于(=)、等于(==)、不等于(!=)來判斷某個(gè)集合是否完全包含于另一個(gè)集合,也可以使用子父集判斷函數(shù)。
issuperset ? ? 集合st1是否是集合st2的父集
issubset ? ??集合st1是否是集合st2的子集
十一、不可變集合frozenset的用法
frozenset ? ??該集合中的內(nèi)容是不可改變的,其他功能及操作跟可變集合set一樣
Python set 集合最常用的操作是向集合中添加、刪除元素,以及集合之間做交集、并集、差集等運(yùn)算。
向set集合中添加元素
set 集合中添加元素,可以使用 set 類型提供的 add() 方法實(shí)現(xiàn),該方法的語法格式為:
1
setname.add(element)
其中,setname 表示要添加元素的集合,element 表示要添加的元素內(nèi)容。
需要注意的是,使用 add() 方法添加的元素,只能是數(shù)字、字符串、元組或者布爾類型(True 和 False)值,不能添加列表、字典、集合這類可變的數(shù)據(jù),否則 Python 解釋器會報(bào) TypeError 錯(cuò)誤。例如:
1
2
3
4
5
a = {1,2,3}
a.add((1,2))
print(a)
a.add([1,2])
print(a)
運(yùn)行結(jié)果為:
1
2
3
4
5
{(1, 2), 1, 2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in
a.add([1,2])
TypeError: unhashable type: 'list'
從set集合中刪除元素
刪除現(xiàn)有 set 集合中的指定元素,可以使用 remove() 方法,該方法的語法格式如下:
1
setname.remove(element)
使用此方法刪除集合中元素,需要注意的是,如果被刪除元素本就不包含在集合中,則此方法會拋出 KeyError 錯(cuò)誤,例如:
1
2
3
4
5
a = {1,2,3}
a.remove(1)
print(a)
a.remove(1)
print(a)
運(yùn)行結(jié)果為:
1
2
3
4
5
{2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in
a.remove(1)
KeyError: 1
目錄
前幾節(jié)我們已經(jīng)介紹了Python 中的 列表list , 元組tuple 和 字典dict ,本節(jié)來介紹Python 中的最后一種數(shù)據(jù)結(jié)構(gòu)—— 集合set 。
Python 中的 set 與 dict 很像,唯一的不同是, dict 中保存的是 鍵值對 ,而 set 中只保存 鍵 ,沒有 值 。
Python 集合 有如下特點(diǎn):
Python 集合的聲明有兩種方式:
創(chuàng)建 空集合 時(shí),只能用 set() ,而不能用 {} :
創(chuàng)建 非空集合 時(shí),可以用 set() ,也可以用 {} :
由于集合中的元素是唯一的,如果初始化時(shí)的 可迭代 數(shù)據(jù)中有重復(fù)的元素,則會自動(dòng)刪去重復(fù)的元素:
使用 len() 函數(shù)可以查看集合中元素的個(gè)數(shù):
由于Python 集合中的元素的是無序的,所以可不能使用 下標(biāo) 的方式來訪問集合中的單個(gè)元素。
我們可以使用 for 循環(huán) 來遍歷集合中的所有元素:
我們可以對兩個(gè)集合進(jìn)行如下運(yùn)算:
交集與并集
in 運(yùn)算
使用 dir(set) 查看集合支持的所有方法:
下面一一介紹這些 非魔法方法 ,共17 個(gè)。
1. add 方法
由于集合中的元素是唯一的,向集合中添加元素時(shí)有兩種情況:
示例:
2. remove 方法
示例:
3. discard 方法
示例:
4. pop 方法
示例:
5. union 方法
示例:
6. update 方法
示例:
7. clear 方法
示例:
8. copy 方法
示例:
9. difference 方法
示例:
10. difference_update 方法
示例:
11. intersection 方法
示例:
12. intersection_update 方法
示例:
13. isdisjoint 方法
示例:
14. issubset 方法
示例:
15. issuperset 方法
示例:
16. symmetric_difference 方法
示例:
17. symmetric_difference_update 方法
示例:
(完。)
推薦閱讀:
Python 簡明教程 --- 8,Python 字符串函數(shù)
Python 簡明教程 --- 9,Python 編碼
Python 簡明教程 ---10,Python 列表
Python 簡明教程 ---11,Python 元組
Python 簡明教程 ---12,Python 字典
1.集合(set)是一個(gè)無序不重復(fù)元素的序列(意思是有重復(fù)的會自動(dòng)刪除,每次打印元素的位置不一定)
2.基本功能是進(jìn)行成員關(guān)系測試和刪除重復(fù)元素
3.可以使用大括號 { } 或者 set() 函數(shù)創(chuàng)建集合,注意:創(chuàng)建一個(gè)空集合必須用 set() 而不是 { },因?yàn)?{ } 是用來創(chuàng)建一個(gè)空字典
4.因?yàn)閟et存儲的是無序集合,所以我們沒法通過索引來訪問。訪問 set中的某個(gè)元素實(shí)際上就是判斷一個(gè)元素是否在set中。
1.創(chuàng)建集合
s=set()#創(chuàng)建一個(gè)空集合
s1={1,2,3,'a','python'}
2.刪除重復(fù)的元素
集合是一個(gè)無序不重復(fù)元素的序列(意思是有重復(fù)的會自動(dòng)刪除,每次打印元素的位置不一定)
3.成員關(guān)系測試(檢測某個(gè)成員是否在集合中)
案例:從終端輸入5位數(shù),以空格隔開,把這5位數(shù)存入列表中,剔除重復(fù)的數(shù)據(jù),打印出來
#提示,列表轉(zhuǎn)集合,集合轉(zhuǎn)列表
a=input("請輸入5位數(shù)字:")
mylist=a.split()
print(mylist)
b=set(mylist)
c=list(b)
print(c)
4.集合常用操作
1.添加元素
2.刪除元素
3.刪除整個(gè)集合
4.獲取集合的長度
5.不支持改元素
集合操作-添加元素
格式:
集合.add(元素)
格式:
集合.update(元素)
區(qū)別:
add不能添加列表,update可以
update是將字符串中的拆分成字符進(jìn)行追加
add,是當(dāng)做整體追加在集合中
#案例:從終端輸入一個(gè)數(shù)字就加入集合中,然后打印,又輸入一個(gè)數(shù)字,然后打印,直到輸入-1,退出輸入
#然后打印最終的集合
ms=set()
while 1:
a=int(input("請輸入一個(gè)數(shù)字:"))
if a==-1:
break
ms.add(a)
print(ms)
print(ms)
#案例:從終端輸入一個(gè)字符串就加入集合中,然后打印,又輸入一個(gè)字符串,然后打印,直到輸入q,退出輸入
#然后打印最終的集合,字符串要分開存儲,如輸入hello,存儲的列表是{'h','e','l','0'}
ms=set()
while 1:
a=input("請輸入一個(gè)字符串:")
if a=='q':
break
ms.update(a)
print(ms)
print(ms)
集合操作-刪除元素及刪除整個(gè)集合
格式:
集合.remove(元素)? # 元素如果不存在會引發(fā)KeyError
集合.discard(元素)? # 元素如果不存在不發(fā)生任何事
集合.pop()? # 集合元素是字符串類型時(shí)刪除隨機(jī)元素。 集合元素是其他數(shù)據(jù)類型時(shí),刪除左邊第一個(gè)元素
del 集合名 #刪除整個(gè)集合
#案例:有集合{1,2,3,'hello','world'},刪除全部字符串,然后最左邊第一個(gè)元素
a={1,2,3,'hello','world'}
a.discard("hello")
a.discard("world")
a.pop()
print(a)
集合操作-獲取集合的長度
格式:
len(集合名)
#案例:有集合{1,2,3,4,'hello','a'},保留1個(gè)元素,其他的刪除,假如元素個(gè)數(shù)不確定
s={1,2,3,4,'hello','a'}
for i? in range(len(s)-1):
s.pop()
print(s)
集合的集運(yùn)算
集合的交集,并集,差集,對稱差集的運(yùn)算
{1,2,3,4}交集{4,5,6,7} --4 ? 交集()
{1,2,3,4}并集{4,5,6,7} -1,2,3,4,5,6,7? 并集(|)
{1,2,3,4}差集{4,5,6,7} -1,2,3? 差集(-)
{1,2,3,4}對稱差集{4,5,6,7}-1,2,3,5,6,7 4同時(shí)出現(xiàn)在兩個(gè)集合中,不選它 對稱差集(^)
#案例:使用花括號和set創(chuàng)建各一個(gè)集合,然后對集合進(jìn)行交、并、差、對稱差運(yùn)算
s={1,2,3,4,5,6}
s1=set([6,7,8,9,10])
print(ss1)
print(s|s1)
print(s-s1)
print(s^s1)
變量名={元素,元素,,,}
nums={11,24,45,96,28}
nums.add(42)
print(nums)
nums={11,24,45,96,28}
nums2=["anfly","tom"]
nums.update(nums2)
print(nums)
1)nums={11,24,45,96,28}? [沒有該數(shù)字報(bào)錯(cuò)]
? ?nums.remove(24)
? ?print(nums)
2)nums={11,24,45,96,28}? [隨機(jī)刪]
?nums.pop()
?print(nums)
3)nums={11,24,45,96,28}?[沒有該數(shù)字不會報(bào)錯(cuò)]
?nums.discard(24)
?print(nums)
交集:(存在相同元素)
set1={"anfly","tom","haha"}
set2={"anfly","susala"}
set3=set1set2
print(set3)
并集:(得到全部集合中全部的元素)
set1={1,2,3,4}
set2={3,4,5,6}
new_set=set1|set2
print(new_set)
運(yùn)算符 (+ * in)
內(nèi)置函數(shù) (len max min del)
列:set1 = {"1","2","3"}
? ? print(min(set1))
def函數(shù)名():
? ?執(zhí)行語句
函數(shù)名()
列:
defhello():
print("hello word")
hello()
2.函數(shù)參數(shù):
def? add2num():
a=11
b=22
c=a+b
print(c)
add2num()
3.位置參數(shù):
def? fun(a,b):
?print("a:",a)
?print("b:",b)
fun(2,3)
4.關(guān)鍵字參數(shù):
def? fun(a,b):
? print("a:",a)
?print("b:",b)
fun(a=2,b=3)? ?[第一個(gè)‘a(chǎn)’可以直接寫數(shù)字,也可以展示;第二個(gè)以及之后‘b’不能直接寫數(shù)字,要寫‘b=3’這種格式]
5.缺省參數(shù)
def printinfo(name,age=20):
? print("name:",name)
? print("age:",age)
printinfo(name="anfly")? [展示都能展示出來]
6.不定長參數(shù)
1).*args[展示是元組]
defprintinfo(*args):
?print("args:",args)
printinfo(100,200,300,400)
2)**args[展示是k.v格式]
def printinfo(**kwargs):
?print("kwargs:",kwargs)
printinfo(a=100,b=200,c=300,d=400)
7.參數(shù)位置順序
def sun(a,*args,b=22,**kwargs):
? ? ?print("a:",a)? ? ? ? ==10
? ? ?print("args:",args)? ? ==(200,300)
? ? ?print("b:",b)? ? ==2
? ? ?print("kwargs:",kwargs)? =={‘m’:3,'n':4}
sun(100,200,300,b=2,m=3,n=4)
8.函數(shù)返回值
def fan(a,b):
? return a+b
print(fan(1,2))? #3
9.匿名函數(shù)(lambda函數(shù)也叫匿名函數(shù),即函數(shù)沒有具體的名稱)
案例一:
sum=lambda a,b:a+b
print(sum(1,2))? #3
案例二:
sum=lambda a,b:100
print(sum(1,2))? #100
1.局部變量
def jv():
? ?a=3?
? ?print(a)
def jv1():? ?
? ?a=99? ?
? ?print(a)
jv()? ? ? ?#3
jv1()? ? #99
2.全局變量
def jv():
? ?print(a)?
def jv1():? ?
? ? a=99? ?
? ? print(a)
jv()? ? ?#全局變量
jv1()? ? #99
3.局部變量升成全局變量
def jv():
? ? a=3?
? ? global b? ?
? ? ?b="我也是全局變量"?
? ? ? print(a)
def jv1():? ?
? ? ? ?a=99? ?
? ? ? ? print(a)? ?
? ? ? ? ?print(b)
jv()? ? ? ? ? #3
jv1()? ? ? ? #99 #“我也是全局變量”
網(wǎng)站題目:python集合運(yùn)算函數(shù) python集合運(yùn)算符
文章來源:http://chinadenli.net/article6/hjisog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)公司、用戶體驗(yàn)、電子商務(wù)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)