集合(set):把不同的元素組成一起形成集合,是python基本的數據類型。
集合分類:可變集合(set)、不可變集合(frozenset),創建方式一樣
集合特點:無序,唯一,速度快
1.創建集合
>>> s = set('ian')
>>> s
{'a', 'n', 'i'}
>>> len(s)
3
>>> li = ['apple','pear','peach']
>>> s = set(li)
>>> s
{'peach', 'pear', 'apple'}
>>> len(s)
3
2.訪問集合
由於集合本身是無序的,所以不能爲集合創建索引或切片操作,只能循環遍歷或使用in、not in來訪問或判斷集合元素。
>>> 'apple' in s
True
>>> 'banana' in s
False
>>> for i in s:
... print(i)
...
peach
pear
apple
3.更新集和內容
add方法:是把要傳入的元素做爲一個整個添加到集合中
>>> a
{'peach', 'pear', 'apple'}
>>> a.add('banana')
>>> a
{'peach', 'banana', 'pear', 'apple'}
update方法:是把要傳入的元素拆分,做爲個體傳入到集合中
>>> a = set(['apple'])
>>> a
{'apple'}
>>> a.update('peach')
>>> a
{'c', 'p', 'apple', 'h', 'e', 'a'}
remove方法:刪除指定元素
>>> a
{'c', 'p', 'apple', 'h', 'e', 'a'}
>>> a.remove('apple')
>>> a
{'c', 'p', 'h', 'e', 'a'}
pop方法:刪除一個元素並返回
>>> a
{'h', 'e', 'a'}
>>> c = a.pop()
>>> a
{'e', 'a'}
>>> c
'h'
#remove和pop什麼區別?
#remove只是刪掉元素,需要接參數,無返回值
#pop是取出元素並賦值,不需要接參數,有返回值
4.集合操作符
交集
>>> a
{'e', 'a'}
>>> b
{'c', 'a', 'b'}
>>> a & b
{'a'}
>>> a.intersection(b)
{'a'}
並集(合集)
>>> a | b
{'e', 'a', 'c', 'b'}
差集
>>> a.difference(b) #誰.difference, 就是循環的誰
{'e'}
>>> b.difference(a)
{'c', 'b'}
>>> a-b #同difference
{'e'}
>>> b-a
{'c', 'b'}
對稱差
#你不在我裏面或是我也不在你裏面的值,兩個集合分別循環一次
#也可以理解爲兩個集合差集的並集
>>> a.symmetric_difference(b) #哪個集合在前面都是一樣的
{'c', 'e', 'b'}
>>> b.symmetric_difference(a)
{'e', 'c', 'b'}
>>> (a-b)|(b-a) #兩個集合兩次差集的並集
{'e', 'c', 'b'}