本篇文章帶給大家的內容是關於Python集合的概念是什麼? Python集合的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
集合的描述
集合是無序的、不重複的資料集合,它本身是可變的,但裡面的元素是不可變類型(這裡要注意,即使是含有清單的元組也不可以,必須是完全不可變類型)
#建立集合
建立集合可以使用大括號{}來創建,元素間用逗號分隔,但是不能用它來創建空集合,因為{}創建的是空字典。
如 set1 = {1,2,3}
也可以使用set()函數來建立集合,其中的參數為可迭代物件即可(例如字串、列表、元組、迭代器等),前提是元素中必須是不可變類型。
i = 'abcdefg' a =set(i) print(type(a)) print(a) ---------- <class 'set'> {'b', 'a', 'f', 'd', 'g', 'e', 'c'}
增add update
#add(elem)
可以向集合中新增元素,如果該元素已存在則不做任何改變
s1 = {1,2,3} s1.add('qwe') print(s1) ---------- {1, 2, 3, 'qwe'}
update(*others)
可將其他可迭代物件(例如字串、清單、元組)新增至集合中,自動刪除重複元素
s1 = {1,2,3} it = [3,4,5] s1.update(it) print(s1) ---------- {1, 2, 3, 4, 5}
刪remove(elem) discard(elem) pop() clear()
remove(elem)
#將元素從集合中刪除,如果該元素不存在則會報錯。
s1 = {1,2,3} s1.remove(2) print(s1) ---------- {1, 3}
discard(elem)
和remove一樣可以將元素從集合中刪除,區別是如果元素不存在則不會報錯。
s1 = {1,2,3} s1.discard(6) print(s1) ---------- {1, 2, 3}
pop()
從集合中隨機刪除一個元素,並且傳回該元素,如果集合為空則會報錯
s1 = {1,2,3} a = s1.pop() print(s1) print(a) ---------- {2, 3} 1
clear ()
用於清空集合。
幾種運算方法
對於集合來講有幾種運算方法:交集、並集、差集、反交集、子集、超集
下面用程式碼來詳細說明每種方法的用法
s1 = {1,2,3,4,5} s2 = {3,4,5,6,7} print('交集:',s1 & s2) #可用&或者intersection,输出一个新的集合,包含共同拥有的元素 print('交集:',s1.intersection(s2)) print('并集:',s1 | s2) #可用|或者union,输出一个新的集合,包含两个集合中所有的元素(去重) print('并集:',s1.union(s2)) print('差集:',s1 - s2) #可用 - 或者difference,输出一个新的集合,包含前一个集合中除去共有的元素 print('差集:',s1.difference(s2)) print('反交集:',s1 ^ s2) #可用^或者 symmetric_difference,输出一个新的集合,包含两个集合中除去共有的元素后剩余的所有元素 print('反交集:',s1.symmetric_difference(s2))
交集: {3, 4, 5} 交集: {3, 4, 5} 并集: {1, 2, 3, 4, 5, 6, 7} 并集: {1, 2, 3, 4, 5, 6, 7} 差集: {1, 2} 差集: {1, 2} 反交集: {1, 2, 6, 7} 反交集: {1, 2, 6, 7}
子集與超集,簡單來講就是一個集合中的元素包含另一個集合中所有的元素,則「大的」集合叫超集,「小的」叫子集
s1 = {1,2,3} s2 = {1,2,3,4,5} print(s1.issubset(s2)) #输出为True,s1是s2的子集 print(s2.issuperset(s1))#输出为True,s2是s1的超集 ---------- True True
另外,使用frozenset('集合名稱'),可以把集合變成不可變集合
以上是Python集合的概念是什麼? Python集合的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!