Python中的集合-創(chuàng)新互聯

Python是一種跨平臺的計算機程序設計語言。 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。最初被設計用于編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越多被用于獨立的、大型項目的開發(fā)。今天介紹的是Python中的集合。

鎮(zhèn)寧網站建設公司創(chuàng)新互聯,鎮(zhèn)寧網站設計制作,有大型網站制作公司豐富經驗。已為鎮(zhèn)寧上千多家提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站建設公司要多少錢,請找那個售后服務好的鎮(zhèn)寧做網站的公司定做!

一、什么是集合

除了列表,元組和字典,集合也是Python語言提供的內置數據結構之一,可以把集合看作是沒有存儲value的字典,因此集合的特點如下:

1. 集合中不可以存儲重復的數據;

2. 集合中的數據是無序的;

3. 集合中的數據可以是任何不可變類型,多種類型的數據可以混合存儲在一個集合中;

4. 集合可以根據需要動態(tài)的伸縮,也就是說,系統(tǒng)會根據需要動態(tài)的分配和回收內存,因此在使用前無須預先聲明集合的容量;

5. 集合會浪費較大的內存,與列表相比是用空間換取了時間;

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

1、使用花括號{}創(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、使用內置函數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'},傳入的字符串會被分隔開 s = set() # set() <class 'set'> 創(chuàng)建空集合

三、集合的增刪查

1、查操作

使用"in" "not in"對列表進行查操作

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') # 一次添加一個元素 s1.update('e','f','g') # 一次添加多個元素 print(s1)  # {'g', 'f', 'd', 'b', 'c', 'a', 'e'}

3、刪操作

使用pop,remove,discard,clear對集合做刪操作

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

四、集合之間的關系

1、兩個集合是否相等,可以使用運算符== 和 != 進行判斷

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

2、一個集合是否是另一個集合的子集

# 調用方法issbubset進行判斷 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、一個集合是否是另一個集合的超集

#  可以調用方法issuperset進行判斷 print(s3.issuperset(s1)) # True print(s3.issuperset(s2)) # False

4、兩個集合是否沒有交集

# 可以調用方法isdisjiont進行判斷 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

五、集合的數學操作

1、兩個集合的交集

#s1和s2的交集 #使用intersection方法,返回的是兩者的交集 #使用s1.intersection_update(s2)方法,返回值是none,但是會把交集的值賦給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、兩個集合的并集

并集并集,合并的集合,使用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、兩個集合的差集

#既找到s1在s2中沒有的元素 #使用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、兩個集合的對稱差集

對稱差集,既去掉兩個集合交集的部分 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,被凍結的set,也是不可變的set,frozenset置于set就好比tuple置于list

frozenset是不可變類型,存在以下特點:

● 存在哈希值

● 可以作為字典的key

● 可以作為set的元素

#可以調用內置函數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'>

另外有需要云服務器可以了解下創(chuàng)新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網站標題:Python中的集合-創(chuàng)新互聯
文章源于:http://muchs.cn/article24/dschce.html

成都網站建設公司_創(chuàng)新互聯,為您提供營銷型網站建設、面包屑導航、網站建設、企業(yè)網站制作、靜態(tài)網站、網站策劃

廣告

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

成都網站建設公司