#Python集合學習筆記
一、基本知識:
1、集合(set):是一個 無序的、不重復的 元素序列,
2、集合的創建:使用 { } 或者 set( )函式 創建集合,
(1)創建 空集合:必須使用 set( )函式,
(2)創建 空集合,不能使用 { },{ } 是用來創建 空字典的,
3、集合創建實體:
(1)a={v1,v2,v3,...}
(2)b=set(value)
(3)推導式:a={x for x in 'abcdefgabcgfc' if x not in ‘abc’}
4、集合的運算:集合a,集合b
(1)【差集】a - b :回傳包含在集合a 中的元素,但在集合b 中沒有此元素,
(101)差集的函式表示1:difference() 方法:用于回傳集合的差集,即回傳的集合元素包含在第一個集合中,但不包含在第二個集合(方法的引數)中,
例:集合a,集合b,集合z:z=a.difference( b )
(102)差集的函式表示2:difference_update()方法:用于移除兩個集合中都存在的元素,
例:集合a,集合b:a.difference_update( b )
(103)difference()與defference_update()的區別: difference() 方法回傳一個移除相同元素的新集合; difference_update() 方法是直接在原來的集合中移除元素,沒有回傳值,
(2)【并集】a | b :回傳包含在集合a 和集合b 中的所有元素,
(201)并集的函式表示:union()方法:回傳兩個集合的并集,即包含了所有集合的元素,重復的元素只會出現一次,
union()方法語法:s1.union(s2 [,s3,...])
例:集合a,集合b,集合z:z=a.union( b ) #合并兩個集合,重復元素只會出現一次,回傳一個新集合,
(3)【交集】a & b:回傳既在集合a 中,又在集合b中的元素,
(301)交集的函式表示1:intersection()方法:用于回傳兩個或更多集合中都包含的元素,即交集,
intersection()方法語法:s1.intersection(s2 [,s3,...])
例:集合a,集合b,集合z:z=a.intersection( b ) #回傳一個新集合
(302)交集的函式表示2:intersection_update()方法:用于獲取兩個或更多集合中都重疊的元素,即計算交集,
intersection_update()方法語法:s1.intersection_update(s2 [,s3,...])
例:集合a,集合b:a.intersection_update( b ) #移除a 集合中不存在于b 集合中的元素,
(303)intersection()與intersection_update()的區別: intersection() 方法是回傳一個新的集合;intersection_update() 方法是在原始的集合上移除不重疊的元素,
(4)【補集】a ^ b:回傳不同時在集合a,和集合b 中的元素,(在集合a中,但集合b中沒有,和在集合b中,但在集合a中沒有的元素)
(401)補集的函式表示法1:symmetric_difference():回傳兩個集合中不重復的元素集合,即會移除兩個集合中都存在的元素,
symmetric_difference()方法語法:s1.symmetric_difference(s2)
例:集合a,集合b,集合z:z=a.symmetric_difference( b ) #回傳兩個集合組成的新集合,但會移除兩個集合的重復元素,
(402)補集的函式表示法2:symmetric_difference_update():移除當前集合中在另外一個指定集合相同的元素,并將另外一個指定集合中不同的元素插入到當前集合中,
symmetric_difference_update()方法語法:s1.symmetric_difference_update( s2 )
例:集合a,集合b:a.symmetric_difference_update( b ) #在原始集合a 中移除與 b 集合中的重復元素,并將集合b 中不重復的元素插入到集合a 中,
(5)判斷兩個集合元素包含情況:
(501)issuperset()函式方法:用于判斷指定集合的所有元素是否都包含在原始的集合中,如果是則回傳 True,否則回傳 False,
issuperset()方法語法:s1.issuperset( s2 )
例:集合a,集合b:z=a.issuperset( b ) #判斷集合b 的所有元素是否都包含在集合a 中 ,
(502)issubset()函式方法:用于判斷集合的所有元素是否都包含在指定集合中,如果是則回傳 True,否則回傳 False,
issubset()方法語法:s1.issubset( s2 )
例:集合a,集合b:z=a.issubset( b ) #判斷集合 a 的所有元素是否都包含在集合 b 中,
(503)issuperset()與issubset()的區別:其實使用一個就行,誰在誰中,只要哪個集合放在前,哪個集合放在后即可,
(6)判斷兩個集合中是否有相同的元素:方法函式:isdisjoint() #回傳布林值,如果不包含回傳 True,否則回傳 False,
例:集合a,集合b:z=a.isdisjoint( b ) #判斷集合 b 中是否有元素在 集合 a 中,
(7)集合的拷貝:s.copy():
例:集合a,集合b:b=a.copy( )
5、集合的基本操作:集合s
(1)添加 元素1:s.add( x ):如果 x 已經在集合s 中,則不做任何操作,
(2)添加 元素2:s.update( x ):引數可以是陣列、串列、字典等;多個 x ,之間用逗號 (,)分隔,
(3)移除 元素1:s.remove( x ):將元素 x 從集合s 中移除;如果 x 不存在,則會發生錯誤,
(4)移除 元素2:s.discard(x):將元素 x 從集合s 中移除;如果 x 不存在,則不會發生錯誤,
(5)洗掉 元素3:x = s.pop( ):隨機洗掉元素,但會回傳洗掉的元素,s.pop()洗掉元素原理:集合s 的pop() 函式會對集合s 的元素進行無序的排序,然后對無序排序后的集合最左邊的元素洗掉,
(6)集合元素個數:len( s ):回傳集合s 的元素個數,
(7)清空集合:s.clear():清空集合s,
(8)判斷元素x 是否在集合s 中:x in s:存在:回傳True;不存在:回傳False,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/346864.html
標籤:Python
上一篇:PHP面試(A-01)
