集合和字典元組列表相似,也是能裝有多個值(元素、內容我也不知道該咋叫了)的一種資料型別
不同的是,集合中的元素是無序的,集合(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 思想是 先把外字典開啟,把外字典的鍵給輸出,然...