python數字的集合(set)類型,是無序集合,集合中的元素(項)不會重復,不管添加多少個相同元素(項),只會保存1次。
python集合是可迭代對象。
1.1 set()和{}
用法
set() -> new empty set object
set(iterable) -> new set object
{元素項}
描述
python的set()函數用于創建集合對象。
入參
set()不送入參,創建空集合。
iterable:送迭代對象,比如字符串、元組等。創建非空集合。
表達式{元素項},創建非空集合。
注意
集合元素無序,且唯一。
無序:生成的集合后的元素順序與定義集合時的順序不一致。
唯一:多次添加重復的元素,只會保留一次。
示例
>>> n=set();x=set('梯閱線條');y=set('梯閱線條軟件測試開發');z={'梯','閱','線條'}
>>> n
set()
>>> x
{'梯', '閱', '線', '條'}
>>> y
{'件', '軟', '發', '梯', '閱', '試', '條', '線', '開', '測'}
>>> z
{'梯', '閱', '線條'}
#集合元素重復添加,只保存一次
>>> u=set('梯閱線條梯閱線條python集合')
>>> u
{'t', 'h', '梯', '閱', 'p', '合', '條', 'o', '線', 'n', 'y', '集'}
1.2 集合表達式
序號 | 表達式 | 描述 |
---|---|---|
1 | ‘s’ in set | 判斷元素是否屬于集合。‘s’在集合set里返回True,否則返回False |
2 | xy,x>=y,x==y,x!=y | 集合子集和超集值相等性操作符 |
3 | x | y |
4 | x ^ y | 集合對稱差,取屬于集合x且不屬于集合y,或屬于集合y且不屬于集合x的元素。即集合交集以外的元素。 |
5 | x & y,x.intersection(y) | 集合交集,取集合x和集合y都有的元素 |
7 | x – y | 集合差集,取在集合x,不在集合y的元素 |
示例
>>> s1=set('123')
>>> s2=set('345')
>>> s1
{'3', '2', '1'}
>>> s2
{'5', '3', '4'}
>>> s1^s2
{'2', '5', '1', '4'}
>>> s1&s2
{'3'}
>>> s1|s2
{'5', '3', '1', '2', '4'}
>>> s1-s2
{'2', '1'}
>>> 1 in s1
False
>>> '1' in s1
True
>>> s1 < s2
False
>>> s1 > s2
False
>>> s1 != s2
True
1.3 集合方法
1.3.1 intersection()
用法
x.intersection(y)
描述
python集合intersection()方法,用于求集合交集。
x.intersection(y),集合x與集合y的交集,對應表達式x&y。
入參
y:集合
出參
返回交集集合
示例
>>> s1=set('123')
>>> s2=set('345')
>>> s1
{'3', '2', '1'}
>>> s2
{'5', '3', '4'}
>>> s1.intersection(s2)
{'3'}
1.3.2 add()
用法
x.add(e)
描述
python集合add()方法,向集合添加元素。
x.add(e),向集合x添加元素e,如果存在則不變,否則新增。
入參
e:集合元素。
出參
改變原始集合。
示例
>>> s1
{'3', '2', '1'}
>>> s1.add('6')
>>> s1
{'6', '3', '2', '1'}
1.3.3 update()
用法
x.update(set)
描述
python集合update()方法,向集合添加集合或元素。
x.update(set) ,向集合x添加集合set,或者添加元素。
入參
set:集合或元素。
出參
改變原始集合。
示例
>>> s1
{'6', '3', '2', '1'}
>>> s1.update(set('127'))
>>> s1
{'7', '6', '3', '1', '2'}
1.3.4 remove()
用法
x.remove(e)
描述
python集合remove()方法,從集合刪除指定元素。
x.remove(e),從集合x刪除元素e。如果元素e不存在,則報錯。
入參
e:要刪除的元素
出參
改變原始集合。
示例
>>> s1
{'7', '6', '3', '1', '2'}
>>> s1.remove('7')
>>> s1
{'6', '3', '1', '2'}
>>> s1.remove('7')
Traceback (most recent call last):
File ", line 1, in
1.3.5 discard()
用法
x.discard(e)
描述
python集合discard()方法,從集合刪除指定元素。
x.discard(e),從集合x刪除元素e。如果元素e不存在,不會報錯。
入參
e:要刪除的元素
出參
改變原始集合。
示例
>>> s1
{'6', '3', '1', '2'}
>>> s1.discard('6')
>>> s1
{'3', '1', '2'}
>>> s1.discard('6')
>>> s1
{'3', '1', '2'}
1.3.6 union()
用法
s1.union(s2)
描述
python集合union()方法,用于求集合的并集。
s1.union(s2),求集合s1和s2的并集。對應表達式s1|s2
入參
s2:集合
出參
返回新的集合
示例
>>> s1
{'3', '1', '2'}
>>> s2
{'5', '3', '4'}
>>> s1.union(s2)
{'5', '3', '1', '2', '4'}
1.3.7 issubset()
用法
s1.issubset(s2)
描述
pythhon集合issubset()方法,用于判斷集合關系。
s1.issubset(s2),s1是s2的子集(s1的全部元素都在s2集合),則返回True,否則返回False。
入參
s2:父集合
出參
s1是s2的子集,返回True,否則返回False。
示例
>>> s1
{'3', '1', '2'}
>>> s2
{'2', '5', '3', '1', '4'}
>>> s1.issubset(s2)
True
>>> s2.issubset(s1)
False
1.4 集合不可變和凍結集合
python集合的元素只能是不可變對象,比如數字、字符串、元組等,不能為列表、字典、集合等。如果集合要嵌入集合,則要用frozenset方法。
示例
>>> s1
{'3', '1', '2'}
>>> s1.add(5)
>>> s1
{'3', 5, '1', '2'}
>>> s1.add([6,7])
Traceback (most recent call last):
File ", line 1, in
1.5 集合解析
集合解析和列表解析類似,只需將循環表達式寫在集合大括號{}里面。
示例
>>> {c*2 for c in '梯閱線條'}
{'線線', '梯梯', '條條', '閱閱'}
-
編程語言
+關注
關注
10文章
1946瀏覽量
34801 -
集合
+關注
關注
0文章
9瀏覽量
8124 -
python
+關注
關注
56文章
4797瀏覽量
84787
發布評論請先 登錄
相關推薦
評論