中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Python中的集合

Python是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。 是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言。最初被設(shè)計(jì)用于編寫自動(dòng)化腳本(shell),隨著版本的不斷更新和語(yǔ)言新功能的添加,越多被用于獨(dú)立的、大型項(xiàng)目的開(kāi)發(fā)。今天介紹的是Python中的集合。

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的延平網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

一、什么是集合

除了列表,元組和字典,集合也是Python語(yǔ)言提供的內(nèi)置數(shù)據(jù)結(jié)構(gòu)之一,可以把集合看作是沒(méi)有存儲(chǔ)value的字典,因此集合的特點(diǎn)如下:

1. 集合中不可以存儲(chǔ)重復(fù)的數(shù)據(jù);

2. 集合中的數(shù)據(jù)是無(wú)序的;

3. 集合中的數(shù)據(jù)可以是任何不可變類型,多種類型的數(shù)據(jù)可以混合存儲(chǔ)在一個(gè)集合中;

4. 集合可以根據(jù)需要?jiǎng)討B(tài)的伸縮,也就是說(shuō),系統(tǒng)會(huì)根據(jù)需要?jiǎng)討B(tài)的分配和回收內(nèi)存,因此在使用前無(wú)須預(yù)先聲明集合的容量;

5. 集合會(huì)浪費(fèi)較大的內(nèi)存,與列表相比是用空間換取了時(shí)間;

二、集合的創(chuàng)建

1、使用花括號(hào){}創(chuàng)建集合

s = {3,5,8,1,2}
print(s) # {1, 2, 3, 5, 8}
s = {3,3,6,8,8,9}
print(s) # {8, 9, 3, 6}
s = {}
print(type(s)) # <class 'dict'> 不能使用{}創(chuàng)建空集合,創(chuàng)建的為字典

2、使用內(nèi)置函數(shù)set創(chuàng)建集合

s = set(range(1,6)) # {1, 2, 3, 4, 5}
s = set([3,5,8,1,2]) # {1, 2, 3, 5, 8},可以傳入列表
s = set((3,5,8,1,2)) # {1, 2, 3, 5, 8},可以傳入元組
s = set({3,5,8,1,2}) # {1, 2, 3, 5, 8},可以傳入{}集合
s = set('35812') # {'5', '8', '3', '2', '1'},傳入的字符串會(huì)被分隔開(kāi)
s = set() # set() <class 'set'> 創(chuàng)建空集合

三、集合的增刪查

1、查操作

使用"in" "not in"對(duì)列表進(jìn)行查操作

s1 = {'a','b','c'}
print('a' in s1) # True
print('d' not in s1) # True


2、增操作

使用add和update方法添加元素

s1 = {'a','b','c'}
s1.add('d') # 一次添加一個(gè)元素
s1.update('e','f','g') # 一次添加多個(gè)元素
print(s1)  # {'g', 'f', 'd', 'b', 'c', 'a', 'e'}


3、刪操作

使用pop,remove,discard,clear對(duì)集合做刪操作

s1 = {1,2,3,4,5}
print(s1.pop())  # 1 一次隨機(jī)刪除一個(gè)元素
s1.remove(3) # 刪除元素3
print(s1) # {2, 4, 5}
s1.discard(2)  # 刪除元素2
print(s1) #  {4, 5}
s1.clear() # 清空集合
print(s1) # set()

四、集合之間的關(guān)系

1、兩個(gè)集合是否相等,可以使用運(yùn)算符== 和 != 進(jìn)行判斷

s1 = set([1,2,3,4])
s2 = set([2,3,4,5])
print(s1 == s2) # False
print(s1 != s2) # True


2、一個(gè)集合是否是另一個(gè)集合的子集

# 調(diào)用方法issbubset進(jìn)行判斷
s1 = {1,2,3,4}
s2 = {3,4,6}
s3 = {1,2,3,4,5}
print(s1.issubset(s3)) # True
print(s2.issubset(s3)) # False


3、一個(gè)集合是否是另一個(gè)集合的超集

#  可以調(diào)用方法issuperset進(jìn)行判斷
print(s3.issuperset(s1)) # True
print(s3.issuperset(s2)) # False

4、兩個(gè)集合是否沒(méi)有交集

# 可以調(diào)用方法isdisjiont進(jìn)行判斷
s1 = {1,3,5,7}
s2 = {22,11,44}
s3 = {1,2,3,5,7,8}
print(s1.isdisjoint(s2)) # True
print(s1.isdisjoint(s3)) # False

五、集合的數(shù)學(xué)操作

1、兩個(gè)集合的交集

#s1和s2的交集
#使用intersection方法,返回的是兩者的交集
#使用s1.intersection_update(s2)方法,返回值是none,但是會(huì)把交集的值賦給s1
s1 = {1,2,3,4}
s2 = {3,4}
print(s1.intersection(s2))  #{3, 4}
print(s1 & s2 ) #{3, 4}
print(s1.intersection_update(s2))  #None
print(s1)  #{3, 4}

2、兩個(gè)集合的并集

并集并集,合并的集合,使用union
s1 = {1,2,3,4,5}
s2 = {3,4,5}
print(s1.union(s2)) #{1, 2, 3, 4, 5}
print(s1 | s2 ) #{1, 2, 3, 4, 5}

3、兩個(gè)集合的差集

#既找到s1在s2中沒(méi)有的元素
#使用difference()方法,找到差集
#使用s1.difference_update(s2)方法,返回的值為None,作用為將差集賦值給s1
s1 = {1,2,3,4,5,6}
s2 = {1,7,9,4,10}
print(s1 - s2 ) #{2,3,5,6}
print(s1.difference(s2)) #{2,3,5,6}
print(s1.difference_update(s2)) #None
print(s1) #{2, 3, 5, 6}

4、兩個(gè)集合的對(duì)稱差集

對(duì)稱差集,既去掉兩個(gè)集合交集的部分
s1 = {1,3,5,7,9}
s2 = {2,3,6,7,10}
print(s1 ^ s2 ) #{1, 2, 5, 6, 9, 10}
print(s1.symmetric_difference(s2)) #{1, 2, 5, 6, 9, 10}
print(s1.symmetric_difference_update(s2)) #None
print(s1) #{1, 2, 5, 6, 9, 10}

六、frozenset不可變的集合

frozenset,被凍結(jié)的set,也是不可變的set,frozenset置于set就好比tuple置于list

frozenset是不可變類型,存在以下特點(diǎn):

● 存在哈希值

● 可以作為字典的key

● 可以作為set的元素

#可以調(diào)用內(nèi)置函數(shù)frozenset創(chuàng)建
print(frozenset(range(6))) # frozenset({0, 1, 2, 3, 4, 5})
print(frozenset([1,2,5,7])) # frozenset({1, 2, 5, 7})
print(frozenset(('a','b','c'))) # frozenset({'a', 'c', 'b'})
print(frozenset('abcdef')) # frozenset({'c', 'f', 'e', 'a', 'b', 'd'})

#作為set的元素
s1 = set(frozenset([1,2,3,4,56,7,8]))
print(s1,type(s1))  # {1, 2, 3, 4, 7, 8, 56} <class 'set'>
s1.add(('abc'))
print(s1,type(s1)) {1, 2, 3, 4, 'abc', 7, 8, 56} <class 'set'>

名稱欄目:Python中的集合
URL網(wǎng)址:http://www.rwnh.cn/article24/jdjpce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、云服務(wù)器、電子商務(wù)營(yíng)銷型網(wǎng)站建設(shè)、用戶體驗(yàn)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
资源县| 耒阳市| 涿州市| 历史| 宁强县| 三门峡市| 天全县| 绵竹市| 大埔县| 金乡县| 吉安县| 桃源县| 临武县| 荣成市| 嫩江县| 日土县| 尼玛县| 林甸县| 河池市| 兴文县| 维西| 盐城市| 八宿县| 台湾省| 玉山县| 万年县| 武汉市| 永吉县| 乌审旗| 西乌珠穆沁旗| 芦溪县| 琼中| 若尔盖县| 益阳市| 宣汉县| 兴国县| 台东市| 灵武市| 南陵县| 利津县| 金平|