Python集合類型的操作與應用


Python集合類型的操作與應用

一、Python集合類型

Python中的集合類型是一個包含0個或多個數據項的無序的不重復的數據組合,其中,元素類型只能是固定數據類型,如整數、浮點數、字符串、元組等,相反,如列表、字典和集合類型本身都是可變數據類型,因此不能作為集合元素使用。

 

1.無序性

集合是無序組合,沒有索引和位置的概念,不能分片,集合中的元素可以動態增加或刪除。集合用大括號{}”表示。

s={1,2,3,'a','b',(5,'c')}

print(s)

由上例可知,集合元素打印后的順序和定義順序可以不同。

 

2.不重復性

集合元素是獨一無二的,使用集合類型可以過濾掉重復元素。set(x)函數用於生成集合,輸入任意組合數據類型的參數,返回一個無序不重復的集合。

s=set('omg')

print(s)

 

 

s=set(('human','animal','water','oil'))

print(s)

 

 

 

二、集合類型的關系操作

 

1.S-TS.difference(T)ST的差集。返回一個新集合,包括在集合S中但不在集合T中的元素。

S={1,2,3,4}

T={2,3,4,5}

print(S-T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.difference(T))

 

 

S={1,2,3,4}

T={2,3,4,5}

print(T-S)

或者

S={1,2,3,4}

T={2,3,4,5}

print(T.difference(S))

 

 

2.S&TS.intersection(T)ST的交集。返回一個新集合,包括同時在集合S和集合T中的元素。

S={1,2,3,4}

T={2,3,4,5}

print(S&T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.intersection(T))

 

 

3.S|TS.union(T)ST的並集。返回一個新集合,包括集合S和集合T中的所有元素。

S={1,2,3,4}

T={2,3,4,5}

print(S|T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.union(T))

 

 

4.S^TS.symmetric_difference(T)ST的對等差集,包括集合S和集合T中的元素,但不包括同時在其中的元素。

S={1,2,3,4}

T={2,3,4,5}

print(S^T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.symmetric_difference(T))

 

 

5.S<=TS.issubset(T):如果ST相同或ST的子集,返回True,否則返回False,可以用S<T判斷S是否是T的真子集。

S={1,2,3}

T={1,2,3,4,5}

print(S<=T)

或者

S={1,2,3}

T={1,2,3,4,5}

print(S.issubset(T))

 

 

6.S>=TS.issuperset(T):如果ST相同或ST的父集,返回True,否則返回False,可以用S>T判斷S是否是T的真父集。

S={1,2,3}

T={1,2,3,4,5}

print(S>=T)

或者

S={1,2,3}

T={1,2,3,4,5}

print(S.issuperset(T))

 

 

三、集合類型的操作函數或方法

1.S.add(x):如果數據項x不在集合S中,將x增加到s中。

S=set((1,2,3,'omg','ok','yes'))

S.add(4)

print(S)

 

 

2.S.clear():移除S中的所有數據項。

S=set((1,2,3,'omg','ok','yes'))

S.clear()

print(S)

 

 

3.S.copy():返回集合S的一個副本。

S=set((1,2,3,'omg','ok','yes'))

S.copy()

print(S)

 

 

4.S.pop():隨機返回集合中S的一個元素,如果S為空,產生KeyError異常。

S=set((1,2,3,'omg','ok','yes'))

T=S.pop()

print(T)

 

 

#打印除被pop出的元素以外的所有元素的集合

S=set((1,2,3,'omg','ok','yes'))

S.pop()

print(S)

 

 

#如果S為空,產生KeyError異常

S=set(())

T=S.pop()

print(T)

 

 

5.S.discard(x):如果數據項x在集合S中,移除該元素;如果x不在集合S中,不報錯。

S=set((1,2,3,'omg','ok','yes'))

S.discard('omg')

print(S)

 

 

#如果x不在集合S中,不報錯

S=set((1,2,3,'omg','ok','yes'))

S.discard('python')

print(S)

 

 

6.S.remove(x):如果數據項x在集合S中,移除該元素;如果x不在集合S中,產生KeyError異常。

S=set((1,2,3,'omg','ok','yes'))

S.remove('omg')

print(S)

 

 

#如果x不在集合S中,產生KeyError異常

S=set((1,2,3,'omg','ok','yes'))

S.remove('python')

print(S)

 

 

7.S.isdisjoint(T):如果集合S與集合T沒有相同元素,返回True,否則返回False

S=set((1,2,3,'omg','ok','yes'))

T=set((4,5,6,'do','true'))

print(S.isdisjoint(T))

 

S=set((1,2,3,'omg','ok','yes'))

T=set((1,2,5,6,'do','ok','true'))

print(S.isdisjoint(T))

 

 

8.len(S):返回集合S的元素個數。

S=set((1,2,3,'omg','ok','yes'))

print(len(S))

 

 

9.x in S:如果x是集合S的元素,返回True,否則返回False

S=set((1,2,3,'omg','ok','yes'))

print(3 in S)

 

S=set((1,2,3,'omg','ok','yes'))

print('python' in S)

 

 

10.x not in S:如果x不是集合S的元素,返回True,否則返回False

S=set((1,2,3,'omg','ok','yes'))

print(3 not in S)

 

 

S=set((1,2,3,'omg','ok','yes'))

print('python' not in S)

 

 

集合類型主要用於成員關系測試、元素去重和刪除數據項。

1.成員關系測試

S={1,2,3,'omg','ok','yes'}

T='omg' in S

print(T)

 

 

2.元素去重

S={1,2,3,'omg','ok','yes',2,'omg'}

T=set(S)

print(T)

 

 

3.刪除數據項

#去重同時刪除數據項

S={1,2,3,'omg','ok','yes',2,'omg'}

T=set(S)

P=tuple(T-{'ok'})

print(P)

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM