Day8 Python基础之遗漏知识点(六)
1. 遺漏知識(shí)點(diǎn)
深、淺拷貝: ??http://www.cnblogs.com/yuanchenqi/articles/5782764.html
a=b:
淺拷貝:?
深拷貝
集合(set)
集合的定義和應(yīng)用
集合是一個(gè)無(wú)序的、不重復(fù)的數(shù)據(jù)組合,它的主要作用如下:
-
-
- 去重,把一個(gè)列表變成集合,就自動(dòng)去重了
- 關(guān)系測(cè)試,測(cè)試兩組數(shù)據(jù)之前的交集、差集、并集等關(guān)系
- 集合對(duì)象是一組無(wú)序排列的可哈希(python中不可變的對(duì)象都是可哈希的)的值:集合成員可以做字典的鍵
- 但集合本身是不可哈希的,不能用作字典的鍵
-
注:因?yàn)榧鲜菬o(wú)序的,所以只能通過(guò)迭代器或for循環(huán)取出其中的值
有關(guān)集合的一些操作(增刪改查)
1.創(chuàng)建集合:可變集合set()和不可變集合frozenset()
2.訪問(wèn)集合:由于集合本身是無(wú)序的,所以不能為集合創(chuàng)建索引或切片操作,只能循環(huán)遍歷或使用in、not in來(lái)訪問(wèn)或判斷集合元素。
s1=set('hello') s2=set(['hello',1,2]) print('h' in s1) print('h' in s2) True False View Code3. 更新集合:
可使用以下內(nèi)建方法來(lái)更新:
s.add() #添加一個(gè)元素
s.update() #添加多個(gè)元素
s.remove() #刪除指定元素
s.pop() #隨機(jī)刪除某一元素
s.clear() #清空集合
注意只有可變集合才能更新:
1 a=set([1,2,3,'hello']) 2 print(type(a)) 3 a.add('uu') 4 a.add('u') 5 print(a) 6 結(jié)果:{1, 2, 3, 'u', 'hello', 'uu'} s.add() 1 a=set([1,2,3,'hello']) 2 print(type(a)) 3 a.update('HO') 4 a.update('MM') 5 a.update([1,'MM']) 6 print(a) 7 結(jié)果:{1, 2, 3, 'hello', 'H', 'MM', 'O', 'M'} s.update()4. 刪除集合
del
集合關(guān)系測(cè)試?
1 in ,not in
2 集合等價(jià)與不等價(jià)(==, !=)
3 子集(a<b)、超集(b>a)
? 子集(issubset) 超集(issuperset)
1 print(set('venus')==set('venusnusnus')) 2 True 3 print(set('venus')<set('venus')) 4 False 5 print(set('venus')<set('venusyo')) 6 True 1234.并集(I)
? 并集(union)操作也就是數(shù)學(xué)中的并集合運(yùn)算,聯(lián)合符號(hào)有個(gè)等價(jià)的方法,union()。
5.交集(&)
交集(intersection)也就是數(shù)學(xué)中的交集運(yùn)算,交集符號(hào)的等價(jià)方法是intersection()
1 print(set('abc') & set('bcd')) 2 print(set('abc') | set('bcd')) 3 結(jié)果:{'c', 'b'} 4 {'c', 'd', 'b', 'a'} 聯(lián)合、交集6.差集(-)
差集(difference)a-b=in a but not in b=a-a&b;b-a=in b but not in a=b-a&b
7.對(duì)稱(chēng)差集(^)
對(duì)稱(chēng)差集(symmetric_difference)a^b=a|b-a&b
1 a=[1,2,3] 2 b=[3,4,5] 3 print(set(a).union(set(b))) 4 print(set(a).intersection(set(b))) 5 print(set(a).difference(set(b))) 6 print(set(a).symmetric_difference(set(b))) 7 結(jié)果: 8 {1, 2, 3, 4, 5} 9 {3} 10 {1, 2} 11 {1, 2, 4, 5} View Code? 注:既可以使用符號(hào)也可以使用集合的方法
?
??
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/weinapang/p/9152748.html
總結(jié)
以上是生活随笔為你收集整理的Day8 Python基础之遗漏知识点(六)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 50 道 CSS 基础面试题及答案
- 下一篇: 网工学Python——初识面向对象