python集合类型_Python 的集合(set)类型
本文簡單介紹了Python語言里set類型自帶的方法,set類型表示元素和集合的從屬關系(membership),和列表等序列相比,最大的特點是無序。可以跟數學里的集合概念完全對應起來。
目錄
概念
數學里的集合概念,在Python語言里對應的是set類型。與list,tuple不同的地方是,set更加強調的是一種“從屬關系”(membership),跟順序無關,所以有重復的元素會先排除。
>>> set([1, 1, 1, 1, 2, 3])
set([1, 2, 3]) #重復元素被排除
>>> set([3, 2, 1])
set([1, 2, 3]) #無序的集合
>>>
set類型的創建
花括號用來創建set類型的變量,這與字典很類似,只是缺少了value,后面會逐漸發現,set類型和字典的key有一些類似之處,比如:無序、不可重復、必須是hashable的,所以用花括號表示,是理所當然的。
set類型還有一種標準的表示法是 set([…]) ,例如
>>> {'a','b'}
set(['a', 'b'])
>>>
set添加元素
set類型有內置函數add用來給set添加元素
>>> A = {'a','b'}
>>> A.add('c')
>>> A
set(['a', 'c', 'b'])
>>>
set更新元素
set類型有四個內置update函數用來給set添加元素,對應于Python 的集合運算中的4種運算
并集更新
與add類似,只是添加的不是單個元素,而且另一個集合,這和字典的update函數功能非常相似。最后的結果是兩個集合的并集
>>> A = {'a','b'}
>>> A.update({'c', 'd'}) #iterable的參數都可以傳遞
>>> A
set(['a', 'c', 'b', 'd'])
>>>
另一種寫法是:@|=@
>>> A = {'a','b'}
>>> A |= {'c', 'd'}
>>> A
set(['a', 'c', 'b', 'd'])
>>>
交集更新
內置函數intersection_update返回的結果是兩個集合的交集
>>> A = {'a','b'}
>>> A.intersection_update({'b', 'd'}) #iterable的參數都可以傳遞
>>> A
set(['b'])
>>>
另一種寫法是 &=
>>> A = {'a','b'}
>>> A &= {'b', 'd'}
>>> A
set(['b'])
>>>
差集更新
內置函數difference_update返回的結果是兩個集合的差集
>>> A = {'a','b'}
>>> A.difference_update({'b', 'd'}) #iterable的參數都可以傳遞
>>> A
set(['a'])
>>>
另一種寫法是 -=
>>> A = {'a','b'}
>>> A -= {'b', 'd'}
>>> A
set(['a'])
>>>
對稱差集更新
內置函數symmetric_difference_update返回的結果是兩個集合的對稱差集
>>> A = {'a','b'}
>>> A.symmetric_difference_update({'b', 'd'}) #iterable的參數都可以傳遞
>>> A
set(['a', 'd'])
>>>
另一種寫法是 ^=
>>> A = {'a','b'}
>>> A ^= {'b', 'd'}
>>> A
set(['a', 'd'])
>>>
set移除元素
remove函數
set類型有好幾個內置函數用來從set中移除已有的元素,首先是remove函數,如果remove的元素不存在,會拋出KeyError異常。
>>> A = {'a','b'}
>>> A.remove('c')
Traceback (most recent call last):
File "", line 1, in
A.remove('c')
KeyError: 'c'
>>>
discard函數
若要不拋出異常,可以使用discard函數
>>> A = {'a','b'}
>>> A.discard('c')
>>> A
set(['a', 'b'])
>>>
pop函數
上述兩個函數都是指定set中某一個元素,而pop函數無需指定元素,每次運行時會刪除任意一個元素,并返回這個元素的值。當set為空時,拋出 KeyError
>>> A = {'a','b'}
set(['a', 'b'])
>>> A.pop()
'a'
>>> A.pop()
'b'
>>> A.pop()
Traceback (most recent call last):
File "", line 1, in
A.pop()
KeyError: 'pop from an empty set'
>>>
清空set
set的內置函數 clear 用來清空set
>>> A = {'a','b'}
set(['a', 'b'])
>>> A.clear()
>>> A
set([])
>>>
set comprehension
與list、dict類似,set類型也能有comprehension的構造法:
>>> {i for i in range(10)}
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>>
總結
以上是生活随笔為你收集整理的python集合类型_Python 的集合(set)类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学生成绩管理系统设计报告python_p
- 下一篇: python 占位符_5分钟让你用Pyt