P025 python基礎:數(shù)據(jù)類型之集合01

"""

認識集合

set是一個無序且不重復的元素集合。

集合對象是一組無序排列的可哈希的值,集合成員可以做字典中的鍵。

集合支持用in和not in操作符檢查成員,由len()內建函數(shù)得到集合的基數(shù)(大小), 用 for 循環(huán)迭代集合的成員。

但是因為集合本身是無序的,不可以為集合創(chuàng)建索引或執(zhí)行切片(slice)操作,也沒有鍵(keys)可用來獲取集合中元素的值。set和dict一樣,只是沒有value,相當于dict的key集合,由于dict的key是不重復的,且key是不可變對象因此set也有如下特性:

不重復

元素為不可變對象""""""

1,聲明一個集合"""s = set()s = {11,22,33,44}#注意在創(chuàng)建空集合的時候只能使用s=set(),因為s={}創(chuàng)建的是空字典a=set('boy')#字符串b=set(['y','b','o','o'])#列表

c=set({"k1":'v1','k2':'v2'})#字典

d={'k1','k2','k2'}

e={('k1','k2','k2')}#元組

print(a,type(a))

print(b,type(b))

print(c,type(c))

print(d,type(d))

print(e,type(e))

集合的常用操作函數(shù)

"""

2,add用于給集合添加元素,如果添加的元素在集合中已存在,則不執(zhí)行任何操作。

語法:set.add(el)

"""set1 = {"ab","cd","ef"}

set1.add("ab")#已有該值,所以不做任何改變

print(set1)set1.add("gh")#插入是無序的.print(set1)

注意,add的位置是隨機的,每次輸出的set1的順序都不一樣。多運行幾次,查看結果你就會發(fā)現(xiàn)這種現(xiàn)象。原因就在于set是無序的。

"""

3,clear清空集合元素set.clear()

"""set3 = {"ab","cd","ef"}

set3.clear()print(set3)

注意,這里是返回“set()”,不是{}。

"""

4,copy復制一個集合"""

set4 = {"ab","cd","ef"}

set5 = set4.copy()

print(set5)

注意:這里注意,輸出的set5一樣是無序的。集合每次輸出的結果都可能不一樣。所以,充分理解集合是無序這一層含義吧!

"""

5,difference用于返回集合的差集,即返回的集合元素包含在第一個集合中,但不包含在第二個集合(方法的參數(shù))中。

語法:set1.difference(set2)

"""

set5 = {"ab","cd","ef"}

set6 = {"ab","cd","gh","jk"}

set7 = {"ab","cd","ef"}

tem1 = set5.difference(set6)print(tem1)

tem2= set6.difference(set5)

print(tem2)

tem3= set5.difference(set7)

print(tem3)

通過tem1,tem2的結果輸出,不難理解:difference返回的是和被比較集合的差。即,除去共同有的,就是返回結果;返回的結果取決于誰在先。如果兩個集合相等,則返回:set()。

"""

6,difference_update用于移除兩個集合中都存在的元素。不返回新對象,直接修改原集合。

語法:set1.difference_update(set2)

被修改的是set1,set2不會被修改"""

set5 = {"ab","cd","ef"}

set6 = {"ab","cd","gh","jk"}

set7 ={"ab","cd","ef"}

set5.difference_update(set6)

print(set5)

print(set6)

set6.difference_update(set5)

print(set6)print(set5)

set5.difference_update(set7)

print(set5)

tips:difference 和difference_update的區(qū)別在于有沒有返回新對象。

"""

7,discard 刪除指定的元素。刪除不存在的元素不會報錯set.discard(value)

"""set7 = {"ab","cd","gh","jk"}

set7.discard("gh")

print(set7)set7.discard("go")#刪除不存在的元素不報錯print(set7)

"""

8,remove刪除指定的元素。刪除不存在的元素會報錯"""

set8 = {"ab","cd","gh","jk"}

set8.remove("gh")

print(set7)

set8.remove("go")#報錯print(set7)

tips:discard 和remove的區(qū)別是會不會報錯。

下篇繼續(xù)講set的常用函數(shù)

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容