Python基礎知識(四)之set集合

2021-09-02 19:19:47 字數 3434 閱讀 2348

集合(set)是乙個無序的不重複元素序列。

可以使用大括號  或者 set() 函式建立集合,注意:建立乙個空集合必須用 set() 而不是 ,因為  是用來建立乙個空字典。

建立格式:

parame = 

或者set(value)

>>> 'orange' in basket # 快速判斷元素是否在集合內 true

>>> 'crabgrass' in basket false >>> # 下面展示兩個集合間的運算. ...

>>> a = set('abracadabra')

>>> b = set('alacazam')

>>> a

>>> a - b # 集合a中包含而集合b中不包含的元素

>>> a | b # 集合a或b中包含的所有元素

>>> a & b # 集合a和b中都包含了的元素

>>> a ^ b # 不同時包含於a和b的元素

類似列表推導式,同樣集合支援集合推導式(set comprehension):

>>>a = >>> a

語法格式如下:

s.add( x )
將元素 x 新增到集合 s 中,如果元素已存在,則不進行任何操作。

>>>thisset = set(("google", "runoob", "taobao"))

>>> thisset.add("facebook")

>>> print(thisset)

還有乙個方法,也可以新增元素,且引數可以是列表,元組,字典等,語法格式如下:

s.update( x )
x 可以有多個,用逗號分開。

>>>thisset = set(("google", "runoob", "taobao"))

>>> thisset.update()

>>> print(thisset)

>>> thisset.update([1,4],[5,6])

>>> print(thisset)

語法格式如下:

s.remove( x )
將元素 x 從集合 s 中移除,如果元素不存在,則會發生錯誤。

>>>thisset = set(("google", "runoob", "taobao"))

>>> thisset.remove("taobao")

>>> print(thisset)

>>> thisset.remove("facebook") # 不存在會發生錯誤

traceback (most recent call last): file "", line 1, in keyerror: 'facebook' >>>

此外還有乙個方法也是移除集合中的元素,且如果元素不存在,不會發生錯誤。格式如下所示:

s.discard( x )
>>>thisset = set(("google", "runoob", "taobao"))

>>> thisset.discard("facebook") # 不存在不會發生錯誤

>>> print(thisset)

我們也可以設定隨機刪除集合中的乙個元素,語法格式如下:

s.pop()
thisset = set(("google", "runoob", "taobao", "facebook")) x = thisset.pop() print(x)

輸出結果:

$ python3 test.py 

runoob

多次執行測試結果都不一樣。

然而在互動模式,pop 是刪除集合的第乙個元素(排序後的集合的第乙個元素)。

>>>thisset = set(("google", "runoob", "taobao", "facebook"))

>>> thisset.pop() 'facebook' >>> print(thisset) >>>

語法格式如下:

len(s)
計算集合 s 元素個數。

>>>thisset = set(("google", "runoob", "taobao"))

>>> len(thisset) 3

語法格式如下:

s.clear()
清空集合 s。

>>>thisset = set(("google", "runoob", "taobao"))

>>> thisset.clear()

>>> print(thisset) set()

語法格式如下:

x in s
判斷元素 x 是否在集合 s 中,存在返回 true,不存在返回 false。

>>>thisset = set(("google", "runoob", "taobao"))

>>> "runoob" in thisset true

>>> "facebook" in thisset false

方法描述

add()

為集合新增元素

clear()

移除集合中的所有元素

copy()

拷貝乙個集合

difference()

返回多個集合的差集

difference_update()

移除集合中的元素,該元素在指定的集合也存在。

discard()

刪除集合中指定的元素

intersection()

返回集合的交集

intersection_update()

刪除集合中的元素,該元素在指定的集合中不存在。

isdisjoint()

判斷兩個集合是否包含相同的元素,如果沒有返回 true,否則返回 false。

issubset()

判斷指定集合是否為該方法引數集合的子集。

issuperset()

判斷該方法的引數集合是否為指定集合的子集

pop()

隨機移除元素

remove()

移除指定元素

symmetric_difference()

返回兩個集合中不重複的元素集合。

symmetric_difference_update()

移除當前集合中在另外乙個指定集合相同的元素,並將另外乙個指定集合中不同的元素插入到當前集合中。

union()

返回兩個集合的並集

update()

給集合新增元素

python基礎知識 set集合

set集合是乙個無序並且不重複的元素集合。name set hello word name add 作用 向set集合裡面新增新的元素 name set hello word name name.add python name clear 作用 清空set集合中的所有元素 name name.cle...

python基礎知識(四)

函式 基本形式 def greet print hello greet 輸出結果 hello 傳遞引數 def greet name print hello name greet xiao ming 輸出結果 hello xiao ming 形參與實參 形參是函式引數列表中宣告的引數 實參是實際傳遞...

python基礎知識(四)

關於編碼的問題 in python3中 對於英文 數字 utf8 1個bytes 位元組 對於乙個字元 對於中文 unicode 3個bytes 位元組 對應乙個字元 encode 編碼 將unicode形式轉化為utf 8等其他形式 decode 解碼 將utf 8等其他形式轉化為unicode形...