python中set() 函數(shù)創(chuàng)建一個無序不重復元素集,刪除重復數(shù)據(jù)。如:s = 'infomaintion',set(s)輸出{'a', 'f', 'i', 'm', 'n', 'o', 't'}。
10年積累的成都網(wǎng)站建設、成都做網(wǎng)站經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設流程,更有鎮(zhèn)遠免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
一、創(chuàng)建集合
創(chuàng)建非空集合:集合中set括號中需要的參數(shù)的數(shù)據(jù)類型有:序列(包括字符串、列表、元組),字典可以轉為集合,注意數(shù)值類型不能作為集合的參數(shù),如int類型。
二、添加元素
add() 方法是將要添加的元素作為一個整體添加到集合中
update() 方法是把要傳入的元素拆分成單個字符,存于集合中,并去掉重復的
三、刪除元素
集合的刪除操作使用的方法跟列表是一樣的,使用的也是 remove 方法,只能單個刪除
四、遍歷集合
五、集合與字符串、列表、元組互轉,集合轉字典
六、查找元素并刪除
函數(shù)原型: a.discard(b)
參數(shù)說明:a為一個set類型的變量;b表示要查找并刪除的元素
函數(shù)作用:在集合setVar中查找element元素,如果存在則刪除;如果沒找到,則什么也不做。該函數(shù)沒有返回值
七、pop用法
函數(shù)原型: set1.pop() ? ? 刪除并返回集合set1中的第一個元素,如果為空引發(fā)KeyError錯誤+
八、clear、copy和len的用法
clear ????方法用于清空集合中的所有元素
copy ????方法用于集合拷貝
len ????跟求序列的長度的函數(shù)len()是一樣的,返回的是集合中有多少個元素
九、求集合的交集、并集、差集和difference的用法
求集合的 交集 使用的符號是 “”
求集合的 并集 用的是符號 “|”
求集合的 差集 使用的符號是減號 “-”
difference? ? 等價于集合的差集 ,查看兩個集合的不同之處。這種不同指的是集合s1相對于集合s2,不同的地方,也就是所有在集合s1中,而不再集合s2中的的元素組成的新集合
十、運算符判斷集合間關系和issuperset、issubset的用法
集合可以使用大于()、小于()、大于等于(=)、小于等于(=)、等于(==)、不等于(!=)來判斷某個集合是否完全包含于另一個集合,也可以使用子父集判斷函數(shù)。
issuperset ? ? 集合st1是否是集合st2的父集
issubset ? ??集合st1是否是集合st2的子集
十一、不可變集合frozenset的用法
frozenset ? ??該集合中的內(nèi)容是不可改變的,其他功能及操作跟可變集合set一樣
在Python set是基本數(shù)據(jù)類型的一種集合類型,它有可變集合(set())和不可變集合(frozenset)兩種。
創(chuàng)建集合set、集合set添加、集合刪除、交集、并集、差集的操作都是非常實用的方法。set是一個無序的元素集合,支持并、交、差及對稱差等數(shù)學運算,但由于set不記錄元素位置,因此不支持索引、分片等類序列的操作。
python 中l(wèi)ist,tuple,dict,set是最常用的集合類型。
list列表,相當于一個數(shù)組,不過list的長度是自動變化的而且列表元素自由的,不必每個元素都是同一種類型。它的簡潔的定義方式是a=[]。有序組合
tuple也是一個組合。不過tuple在定義好之后就不能再變化。它的簡潔的定義方式是a=1,3也可以是a=(1,3).有序組合。
dict是字典類型。也就是鍵值對類型。鍵名不可以重復,并且不可以變化(字符串就符合這個要求,常用字符串作為鍵名)。它的簡潔的定義方式是a={}.無序組合(意思就是你無法按照添加的順序對他進行遍歷)。
set是set類型(不好翻譯,用的也少)。也是一個無序的組合,元素是互斥的,也就不會出現(xiàn)相同的元素??梢园岩粋€序列轉換成無重復元素的set.無序組合。
python中set()函數(shù)的用法如下:
工具/原料:臺式電腦、Win10、Python3.6.5。
1、首先按下“Win+R”組合鍵,打開運行窗口,如下圖所示。
2、在打開文本框輸入“cmd”,點擊確定,如下圖所示。
3、在打開的cmd窗口中,輸入:“python”,點擊Enter鍵,如下圖所示。
4、在Python環(huán)境中,輸入:“x = set(('hi', 'hello', 'world'))”,點擊Enter鍵,如下圖所示。
5、在Python環(huán)境中,輸入:“print(x)”,如下圖所示。
6、點擊Enter鍵,即可使用Python內(nèi)置的set()函數(shù)創(chuàng)建一個集合對象,并打印出來,如下圖所示。
因為a中的字符串被當作一個字符串對象存在a中,所以a不變
而c中的字符串被set函數(shù)分成了單個字符,然后去掉重復字符,所以輸出成了不重復的單個字符
如果你把a的字符串改成單個字符的set,a和c的結果就一樣了.
總之,set函數(shù)有把字符串打散成單個字符的功能,大括號沒有這一功能,所以導致了a和c輸出的不一樣.
python提供了常用的數(shù)據(jù)結構,其中之一就是set,python中的set是不支持索引的、值不能重復、無需插入的容器。
簡單記錄下set常用的操作函數(shù):
1.新建一個set:
set("Hello"),這樣會轉成單個字符的值進行插入,結果是'H','e','l','o','l'因為重復只能插入一次。
2.增加一個元素:
add()用于增加一個元素值,
update([]),用于增加多個元素值,參數(shù)為list,注意如果用add增加多個值,會報參數(shù)類型錯誤。
3.刪除一個元素:
remove()用于刪除一個set中的元素,這個值在set中必須存在,如果不存在的話,會引發(fā)KeyError錯誤。
discard()用于刪除一個set中的元素,這個值不必一定存在,不存在的情況下刪除也不會觸發(fā)錯誤。
4.隨機刪除函數(shù):
set提供了一個pop()函數(shù),這個函數(shù)隨機返回一個元素值,然后把這個值刪除,如果set為空,調用這個函數(shù)會返回Key錯誤。
5.清空函數(shù):
clear(),將set全部清空。
6.測試單個元素在集合內(nèi)是否存在:
in 或者 not in 如果需要判斷一個值在集合內(nèi)是否存在,in就能滿足要求,例如2 in set_num 如果存在則返回True,否則返回False。
7.測試兩個集合是否包含,子集操作:
issubset和issuperset,
s1.issubset(s2)? :測試是否?s1?中的每一個元素都在?s2?中,運算符操作為 s1=s2;
s2.issuperset(s1)? :測試是否?s1?中的每一個元素都在?s2?中,運算符操作為 s1=s2;//注意是s2調用,參數(shù)為s1.
8.集合的并集:
union s1.union(s2)? :返回一個新集合,新集合包含s1,s2的所有元素,等價的運算符為 | 。
9.集合的交集:
intersection,s1.intersection(s2),返回s1和s2中相同部分
10.其他操作:
s1.difference(s2):包含s1中有,但是s2沒有的元素的集合。
s1symmetric_difference(s2):包含s1和s2中不相同的元素的集合。
以上只是一部分操作的描述,如果有錯誤,敬請指正。