從零自學Python day12

2021-10-08 12:51:52 字數 4025 閱讀 7496

集合和字典元組列表相似,也是能裝有多個值(元素、內容我也不知道該咋叫了)的一種資料型別

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

集合的建立方法是用1.花括號{}(這個與字典相同,因為字典中是鍵值對,所以不會弄混,值得注意的是,當建立空集合的時候,只能用第二種方法,因為用第一種會被認為是空字典)

2.set()

>>

>basket =

>>

>

print

(basket)

# 這裡演示的是去重功能

>>

>

'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 )

將變數s中的集合加入元素x

這個增添的元素可以不止乙個,每個元素間用逗號分開

(如果集合中原本有該元素,則不進行任何操作,因為集合中元素無序不重複)

>>

>thisset =

set(

("google"

,"runoob"

,"taobao"))

>>

> thisset.add(

"facebook"

)>>

>

print

(thisset)

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

s.update( x )

刪減元素的語法格式是

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

set 集合的 pop 方法會對集合進行無序的排列,然後將這個無序排列集合的左面第乙個元素進行刪除。

除了增添刪減

還可以進行的操作是

計算集合中元素個數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是否在s中x in s

>>

>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 DAY12

1.new class capstr str def new cls,string string string.upper return str.new cls,string a capstr i love fish a i love fish 2.del classc def init self ...

python day12 函式高階

1.命名空間 分三種 全域性命名空間,區域性命名空間,內建命名空間。載入順序 內建命名空間 全域性命名空間 區域性命名空間 取值順序 區域性命名空間 全域性命名空間 內建命名空間 2.作用域 作用域就是作用範圍,按照生效範圍可以分為全域性作用域和區域性作用域。全域性作用域 包含 內建命名空間 全域性...

字典與函式(Python day 12)

只要外字典的鍵和內字典的值 a 002 003 for key,val in a.items 開啟一層字典 print key,end for key 1,val 1 in val.items 開啟下一層字典 print val 1,end print 思想是 先把外字典開啟,把外字典的鍵給輸出,然...