python集合的用法

集合

Python 還包含了一個數據類型 —— set (集合)。集合是一個無序不重複元素的集。基本功能包括關係測試和消除重複元素。集合對象還支持 union(聯合),intersection(交),difference(差)和 sysmmetric difference(對稱差集)等數學運算。集合用大括號表示。

集合的創建

1.set() 函數可以用來創建集合

 x = set('spam')
 y = set(['h','a','m'])
 x, y#用逗號隔開的變量屬於元組
##(set(['a', 'p', 's', 'm']), set(['a', 'h', 'm']))
s1=set([1,2,3,4])
 s1
#{1, 2, 3, 4}  
s3=set({'a':2,'b':3,'c':4})
 s3
#{'c', 'a', 'b'}

set集合類需要的參數必須是迭代器類型的,如:序列、字典等,然後轉換成無序不重複的元素集。由於集合是不重複的,所以可以對字符串、列表、元組進行去重操作。

2.大括號也可以創建集合

想要創建空集合,你必須使用 set() 而不是 {}。後者用於創建空字典,我們在後面介紹的一種數據結構。

集合的操作

集合添加

集合的添加有兩種方式,分別是add和update。但是它們在添加元素時是由區別的:

  • add()方法
    把要傳入的元素作爲一個整體添加到集合中,如:
s=set('one')
s
#{'e', 'o', 'n'}
s.add('two')
s
#{'e', 'two', 'o', 'n'}
  • update()方法
    是把要傳入的元素拆分成單個字符,存於集合中,並去掉重複的字符。可以一次添加多個值,如:
s=set('one')
 s
{'e', 'o', 'n'}
 s.update('two')
 s
{'e', 'n', 't', 'w', 'o'}

集合刪除

集合的刪除操作使用的方法跟列表是一樣的,使用的也是remove方法。如:

  • setVar.remove(element)
    setVar :爲一個set類型的變量
    element :表示要查找並刪除的元素
    函數作用:
    在集合setVar中查找element元素,如果存在則刪除;如果沒找到,則報錯。
s=set('one')
 s
{'e', 'o', 'n'}
 s.remove('e')
 s
{'n', 'o'}
  • setVar.discard(element)
    setVar :爲一個set類型的變量
    element :表示要查找並刪除的元素
    函數作用:
    在集合setVar中查找element元素,如果存在則刪除;如果沒找到,則什麼也不做
sList
set([1, 2, 3, 4, 5])
sList.discard(1)
sList
set([2, 3, 4, 5])
  • s.pop()
    s:爲set類型的變量
    函數作用:
    刪除並返回set類型的s中的一個不確定的元素,如果爲空引發KeyError錯誤。
sList
set([2, 3, 4, 5])
sList.pop()
2
  • s.clear()
    s:set類型的變量
    函數作用:
    清空s集合中的所有元素
List
set([3, 4, 5])
sList.clear()
sList
set([])

集合的遍歷

集合的遍歷跟序列的遍歷方法完全一樣。

s=set('one')
s
{'e', 'o', 'n'}
for i in s:
    print(i)
e
o
n

另外一種遍歷(變量idex表示集合中元素i的索引。)

 s=set('one')
 s
{'e', 'o', 'n'}
for idex,i in enumerate(s):
        print (idex,i)
0 e
1 o
2 n

集合函數的補充

函數	說明
len(s)	set 的長度
x in s	測試 x 是否是 s 的成員
x not in s	測試 x 是否不是 s 的成員
s.issubset(t)	測試是否 s 中的每一個元素都在 t 中
s.issuperset(t)	測試是否 t 中的每一個元素都在 s 中
s.union(t)	返回一個新的 set 包含 s 和 t 中的每一個元素
s.intersection(t)	返回一個新的 set 包含 s 和 t 中的公共元素
s.difference(t)	返回一個新的 set 包含 s 中有但是 t 中沒有的元素
s.symmetric_difference(t)	返回一個新的 set 包含 s 和 t 中不重複的元素
s.copy()	返回 set “s”的一個淺複製

想了解更多,可以看一下這幾篇博客
鏈接1
鏈接2
鏈接3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章