<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
集合的最大特徵是其每個元素都是唯一的,它可以刪除、可以增加、也可以通過增刪實現替換元素,但是它是沒有下標的,你無法通過下標或者切片功能存取集合。因為集合就像一個袋子裡面裝著顏色不一樣的玻璃球,你可以替換玻璃球,但是無法指定玻璃球存放的地點。
它最大的作用,就是它元素的唯一,它經常被用來清除多餘的資料。
可以使用 {} 直接建立集合,但是不能使用 {} 建立空集合,因為 {} 被用來建立空字典。你只能通過 set() 來建立空集合。
使用內建函數 set,可以快速的將其他型別的可迭代物件轉換成 集合 物件。這些可迭代物件,可以是字串、列表、元組等等。
print("建立一個空集合") print(set()) str1 = 'ABCDEF!' s=set(str1) print("*"*40) print("一個由字串轉換的集合,每個元素即唯一的單獨字元") print(s) list1 = [0,1,2,3,4,3,2,1] s=set(list1) print("*"*40) print("一個由列表轉換的集合,但是在列表中重複的元素只會出現一次") print(s)
請仔細理解,集合沒有切片功能,這意味著什麼,這意味著無法對它排序(當然可以轉換成列表再排序),意味著無法用 while 迴圈配合下標依次獲得元素,你可以用 for 迴圈獲取。
len 函數返回集合的長度,即元素的個數。
map 函數對集合中的每個元素進行相同的操作,然後返回一個 map 物件,再使用 set 函數可以得到集合。
>>> a {'sdf', 'er'} >>> set(map(lambda x:x+"-",a)) {'er-', 'sdf-'}
filter 函數對集合中的每個元素進行相同的操作,符合條件的元素才留下來,返回一個 filter 型別的物件。
>>> a {'sdf', 'er'} >>> set(filter(lambda x:len(x)==2,a)) {'er'}
filter 函數依次對集合中的元素進行相同的迭代操作最後得到一個物件。
>>> import functools >>> a {'sdf', 'er'} >>> functools.reduce(lambda x,y:x+"~"+y,a) 'sdf~er'
sum 函數,只對元素是數值的集合有效,返回列表中的元素總和,如果元素型別不是數值,則返回 TypeError。
max 函數,返回集合中的元素最大值。
min 函數,返回集合中的元素最小值。
>>> a={1,2,3} >>> sum(a) 6 >>> min(a) 1 >>> max(a) 3 >>>
sorted 函數會對集合按照指定方式進行排序,請注意,使用 sorted 函數會得到一個排好序的列表,不是集合!!!原集合不會改變。
list1 = [0,1,2,3,4,3,2,1] s=set(list1) s1=sorted(s) print(s1) print(type(s1))
enumerate 函數可以將一個集合依次取出。
any() 函數用於判斷給定的集合的所有元素是否都為 False,則返回 False,如果有一個為 True,則返回 True。
all() 函數用於判斷給定的集合的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。
.add(val) 方法附加一個元素 val,如果 val 已經在集合中,那麼原來的集合不變化。
.clear() 方法將集合清空。
.copy() 方法將返回集合的拷貝(而不是和原來的列表共用同一個地址)。
difference() 方法用於返回集合的差集,即返回的集合元素包含在第一個集合中,但不包含在第二、三、N個集合(方法的引數)中。
difference_update() 方法用於移除兩個或者多個集合中都存在的元素。
difference_update() 方法與 difference() 方法的區別在於 difference() 方法返回一個移除相同元素的新集合,而 difference_update() 方法是直接在原來的集合中移除元素,沒有返回值。
# 集合的使用 a={1,2,3,4,1} b={4,5,6,7} # 1.集合是不會有重複的元素的 print("1. ",a) # 2.集合使用 add 方法加一個元素 a.add("6") print("2. ",a) # 3.集合使用 clear 方法清空 a.clear() print("3. ",a) a={1,2,3,4} # 4.集合使用 copy 方法複製資料 c=a.copy() print("4. ",c) # 5.集合使用 difference 方法返回 # 和其他集合不一樣的資料 print("5. ",a.difference(b)) # 6.集合使用 difference_update 方法刪除 # 和其他集合一樣的資料 # a={1,2,3,4} # b={4,5,6,7} a={1,2,3,4} b={4,5,6,7} print("6. ",a.difference_update(b)) print("6. ",a) a={1,2,3,4} c={1} a.difference_update(b,c) print("6. ",a) # 7.集合使用 discard 方法刪掉資料 val a={1,2,3,4} a.discard(2) print("7. ",a)
.discard 方法刪除集合中指定的元素。
.intersection 方法返回集合的交集,自身不受影響。
.intersection 方法原地改變自身為兩個或者多個集合的交集。
>>> a={1,2,3,4,5} >>> b={2,3,4,5,6,7} >>> a.intersection(b) {2, 3, 4, 5} >>> a {1, 2, 3, 4, 5} >>> b {2, 3, 4, 5, 6, 7} >>> a.intersection_update(b) >>> a {2, 3, 4, 5} >>> b {2, 3, 4, 5, 6, 7}
.isdisjoint 方法判斷兩個集合是否包含相同的元素,如果沒有返回 True,否則返回 False。
>>> a={1,2,3,4,5} >>> b={2,3,4,5,6,7} >>> c={"a","b"} >>> a.isdisjoint(b) False >>> a.isdisjoint(c) True
.issubset 方法判斷自身集合是否為該方法引數集合 other_set 的子集。
>>> a={1,2,3,4,5} >>> b={2,3,4,5,6,7} >>> c={1} >>> a.issubset(b) False >>> a.issubset(c) False >>> c.issubset(a) True
.issuperset 方法判斷該方法引數集合 other_set 是否為自身集合的子集。
>>> a={1,2,3,4,5} >>> b={2,3,4,5,6,7} >>> c={1} >>> a.issuperset(b) False >>> a.issuperset(c) True
.pop() 方法將返回集合中的一個元素,原集合將刪除該元素。
請注意,集合中的 pop 方法是沒有 index 引數!如果像使用列表中的 pop 方法輸入 index 引數,則返回 TypeError: pop() takes no arguments (1 given) 錯誤。
.remove(val) 方法將刪除集合中的 val 元素,返回為空。如果 val 不在集合中,則返回 KeyError 錯誤。
返回兩個集合中不重複的元素集合,而不改變自身集合。
移除當前集合中在另外一個指定集合相同的元素,並將另外一個指定集合中不同的元素插入到當前集合中。
# 10.集合使用 ^ 操作符返回 # 兩個集合中不一樣的資料 # 等同於 symmetric_difference方法 a={1,2,3,4} b={4,5,6,7} tmp=a^b print("10. ",tmp) print("a==>",a) print("b==>",b) print("使用 ^ 操作符 原來的集合不受影響") print("*"*60) print("a.symmetric_difference(b)==>",a.symmetric_difference(b)) print("a==>",a) print("b==>",b) print("使用 symmetric_difference方法 原來的集合不受影響") print("*"*60) print("a.symmetric_difference_update(b)==>",a.symmetric_difference_update(b)) print("使用 symmetric_difference_update 原來的集合會改變") print("a==>",a) print("b==>",b) print("*"*60)
.union 方法返回兩個集合的並集,而不改變自身集合。
.update 方法給自身集合集合新增元素。
>>> a={0,1} >>> b={3,4} >>> c={5,6} >>> a.union(b) {0, 1, 3, 4} >>> a {0, 1} >>> b {3, 4} >>> a.update(b) >>> a {0, 1, 3, 4} >>> b {3, 4}
a 、b 是兩個集合;a - b類似於 a.difference(b) 方法,即返回集合a中包含而集合b中不包含的元素,自身不受改變。
>>> a={0,1,2,3} >>> b={2,3,4,5} >>> a-b {0, 1} >>> a.difference(b) {0, 1}
a 、b 是兩個集合;a | b類似於 a.union(b) 方法,即返回集合a和b中所有的元素,自身不受改變。
>>> a={0,1,2,3} >>> b={2,3,4,5} >>> a|b {0, 1, 2, 3, 4, 5} >>> a.union(b) {0, 1, 2, 3, 4, 5}
a 、b 是兩個集合;a & b類似於 a.intersection(b) 方法,即返回集合a和b中都包含了的元素,自身不受改變。
# 9.集合使用 & 選出集合重疊的部分 # 等同於 insection 方法 a={1,2,3,4} b={4,5,6,7} print("********* 初始資料 ***********") print("a==>",a) print("b==>",b) print("8. a & b==>",a & b) print("執行 a & b 後") print("a==>",a) print("b==>",b) print("使用 & 操作符 原來的集合不受影響") print("*"*60) print("8. a.intersection(b)==>",a.intersection(b)) print("使用 intersection 方法 原來的集合不受影響") print("a==>",a) print("b==>",b) print("*"*60) print("8. a.intersection_update(b)==>",a.intersection_update(b)) print("使用 intersection_update 方法 原來的集合會改變") print("a==>",a) print("b==>",b) print("*"*60)
a 、b 是兩個集合;a ^ b類似於 a.symmetric_difference(b) 方法,即返回不同時包含於a和b的元素,自身不受改變。
>>> a={0,1,2,3} >>> b={2,3,4,5} >>> a.symmetric_difference(b) {0, 1, 4, 5} >>> a^b {0, 1, 4, 5}
in 運運算元判斷某個元素屬於某個集合
not in 運運算元判斷某個元素不屬於某個集合
>>> a={0,1,2,3} >>> 0 in a True >>> "0" in a False
本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45