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