額…..繼續整理筆記,set集合方法等,下次不用到處亂翻了..常見的應該就這些了吧……心虛…..
python中集合概念和數學中一致,由乙個或多個確定的元素構成的整體叫集合.set() 建立(可變集合)集合中元素是唯一的,無序的,集合中元素為不可迭代物件,即非列表和字典.
python 中 set 集合分為 可變集合set()和不可變集合frozenset()兩種
所以同樣,set中元素也不能為乙個set,但是可以是乙個frozenset
用{}表示,型別為set(),與字典不同的是集合set內部是單獨元素來表示,而非鍵值對的形式
>>> a = ('a', 'b', 'v')
>>> b = set(a) #tuple轉set
>>> b
>>> type(b)
>>> c = set
() #建立空集合
>>> type
(c)
新增元素
>>> b.add('bb')
>>> b
刪除元素
>>> b.remove('bb')
>>> b
將set b合併到set a中
>>> b
>>> a =
>>> a
>>> b.update(a) # 將set a合併到set b中
>>> b
# b變化
>>> a # a保持
與列表pop和字典popitem方法類似,效果都是移除其中元素並返回移除元素的值由於set集合和dict字典類似都是無序的,並且set中只有值無key,所以移除時為隨機移除
>>> a
>>>b = a.pop()
>>>b
1>>>a
與列表和字典clear方法類似,效果都是清空內部元素,並保留空集合
>>> a.clear()
>>> a
set()
返回乙個淺複製副本
>>> e = a.copy()
>>> e
和remove方法一樣,都是移除set中的元素,不同之處在於remove引數必須實際存在於set中,否則報錯
而discard方法中,引數存在則移除,不存在也不會報錯
>>> e
>>> e.discard(3) # 存在3則移除
>>> e
>>> e.discard(3) # 移除元素,即使不存在也不報錯
>>> e.remove(3) # 用remove移除不存在的元素,則報錯
traceback (most recent call last):
file "", line 1, in
keyerror: 3
顧名思義,不可變集合,就是不可更改的集合了,建立後就不可更改了,所以也就沒有各種方法了.因此,frozenset做為可雜湊物件,具有不可變特性,自然也就可以作為字典keytag:
python中所有不可改變的的物件,如字串,元組tuple,不可變集合frozenset都是可雜湊的
同樣也就是說,可改變的容器如字典dict,列表list,可變集合set 則不可雜湊unhashable
>>> d = forzenset() # 建立乙個空的不可變集合
>>> d
forzenset()
>>> d.add(1) # 不可修改,這裡就報錯了
traceback (most recent call last):
file "", line 1, in
attributeerror: 'frozenset' object has no attribute 'add'
>>> hash(d) # 做為乙個可雜湊的物件,擁有固定的雜湊值
133156838395276
>>> hash(b) # b是乙個set,是乙個可變集合,非固定,所以就沒有hash值了,同樣會提示報錯
traceback (most recent call last):
file "", line 1, in
typeerror: unhashable type: 'set'
和我們數學中學過的差不多,python中關於集合set的操作,一般有並集,交集,差集,對稱差集子集,超集等
union 或者 | (管道符)
>>> a = set([1,2,3])
>>> a
>>> b = set([3,4,5])
>>> b
>>> a.union(b) # 並集
>>> a|b # 符號簡寫形式
intersection 或者 & (and符)
>>> a.intersection(b) #交集
>>> a & b #簡寫
difference 或者 - (減號)
>>> a.difference(b) # a-b的差集
>>> b.difference(a) # b-a的差集
>>> a-b #簡寫
>>> b-a #簡寫
symmetric_dfifference 或者 ^ 符 即除去交集部分
>>> a.symmetric_difference(b)
>>> a^b
issubset 或 <
>>> d =
>>> d.issubset(a)
true
>>> dtrue
issuperset 或 >
>>> a.issuperset(d)
true
>>> a>d
true
set集合方法
集合操作符 集合有四種基礎運算方法,並,交,差,補 s t 並運算,返回乙個新集合,包含在集合s和t中的所有元素 s t 交運算,返回乙個新集合,包含既在s中又在t中的集合 s t 差運算,返回乙個新的集合,包含在集合s中但是不在集合t中的元素 s t 補運算,返回乙個新集合,包含集合s和t中的不相...
python 集合概念set用法
python中set的用法 python 的集合型別和 其他語言類似,是乙個無序不重複元素集,我在之前學過的其他的語言好像沒有見過這個型別,基本功能包括關係測試和消除重複元素.集合物件還支援union 聯合 intersection 交 difference 差 和sysmmetricdiffere...
Set集合和Map集合的使用方法
set是乙個無序的 不重複的集合 它主要的特點就是不重複 主要用來去重 我們使用set集合的時候 需要new 也就是說他是乙個物件 1.使用 使用的時候 必須先進行例項化 可以傳遞乙個引數 引數是可選 如果傳遞引數 引數是陣列 返回的結果是set集合 去重之後的陣列 set集合 let arr 11...