生活随笔
收集整理的這篇文章主要介紹了
Python set集合 - Python零基础入门教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 一.set 集合簡介
- 二.set 集合常用函數
- 三.set 集合運算符
- 四.猜你喜歡
零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門
在 Python 變量中除了以前文章所提到的整形 int / 浮點數 float / 布爾值 bool / 列表 list / 字典 dict 之外,還有一個類型我們還沒有做詳細介紹,這個變量類型就是集合 set。
一.set 集合簡介
Python set 集合使用大括號 { } 表示,與字典 dict 不同的是 set 集合并沒有 key / value 鍵值對,主要有以下兩個特點:
- 1.元素不允許重復;
- 2.set 不記錄元素的添加順序,即是無序的,和字典類似;
#
!usr
/bin
/env python
#
-*- coding
:utf
-8 _
*-
"""
@Author
:猿說編程
@
Blog(個人博客地址
): www
.codersrc
.com
@File
:Python set集合
.py
@Time
:2021/04/04 11:00
@Motto
:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
"""# 創建一個空集合set
set_a
= set()
# 打印集合set
print(set_a
)
# 查看類型
print(type(set_a
))
print("***"*20)# 創建一個集合
set_b
= {"猿說python",False
}
print(type(set_b
))
print(set_b
)
print("***"*20)# 創建一個字典
dict_b
= {"name":"猿說python","url":"www.codersrc.com"}
print(type(dict_b
))
print(dict_b
)'''
輸出結果:
set()
<class 'set'>
************************************************************
<class 'set'>
{False
, '猿說python'}
************************************************************
<class 'dict'>
{'name': '猿說python', 'url': 'www.codersrc.com'}
'''
代碼分析:觀察上面代碼,雖然字典 dict 和 集合 set 都是由 {} 構成,注意字典由鍵值對 key / value 構成,而集合確是由一個一個數據構成,和列表 list 的元素類似!
二.set 集合常用函數
- add — 向 set 集合中添加元素;
- remove — 刪除元素,如果集合中不包含被刪除的元素,remove() 方法會報出 KeyError 異常;
- discard — 刪除元素,如果集合中不包含被刪除的元素,不會有任何提示或者 異常;
- clear — 就是清空白 set 集合;
- copy — 拷貝一個集合;
- difference— 返回多個集合的差集;
- difference_update — 移除集合中的元素,該元素在指定的集合也存在;
- intersection — 返回集合的交集,不改變集合本身,而是返回兩個集合的交集;
- intersection_update — 返回集合的交集,會通過交集運算改變第一個集合;
- isdisjoint — 判斷兩個集合是否包含相同的元素,如果沒有返回 True,否則返回 False;
- issubset — 判斷指定集合是否為該方法參數集合的子集;
- issuperset — 判斷該方法的參數集合是否為指定集合的子集;
- pop — 隨機移除元素;
- symmetric_difference — 移除當前集合中在另外一個指定集合相同的元素,并將另外一個指定集合中不同的元素插入到當前集合中;
- union — 返回兩個集合的并集;
- update — 用于修改當前集合,可以添加新的元素或集合到當前集合中,如果添加的元素在集合中已存在,則該元素只會出現一次,重復的會忽略;
#
!usr
/bin
/env python
#
-*- coding
:utf
-8 _
*-
"""
@Author
:猿說編程
@
Blog(個人博客地址
): www
.codersrc
.com
@File
:Python set集合
.py
@Time
:2021/04/04 11:00
@Motto
:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
"""# 使用花括號構建set集合
c
= {'喬峰',"段譽","虛竹","天龍八部","射雕英雄傳"}
# 添加元素
c
.add("天山姥姥")
c
.add(6)
print("c集合的元素個數為:" , len(c
))
print(c
)
# 刪除指定元素
c
.remove("天山姥姥")
print(c
)
print("c集合的元素個數為:" , len(c
))
print("***"*20)# 判斷是否包含指定字符串
print("c集合是否包含'喬峰'字符串:" , ("喬峰" in c
)) # 輸出True
print("***"*20)# 使用
set()函數(構造器)來創建set集合
movies
= set()
movies
.add("天龍八部")
movies
.add("射雕英雄傳")
print("movies集合的元素:" , movies
)
# issubset()方法判斷是否為子集合
print("movies集合是否為c的子集合?", movies
.issubset(c
)) # 輸出False
# issuperset()方法判斷是否為父集合
# issubset和issuperset其實就是倒過來判斷
print("c集合是否完全包含books集合?", c
.issuperset(movies
)) # 輸出False
# 用c集合減去books集合里的元素,不改變c集合本身
result1
= c
- movies
print(result1
)# difference()方法也是對集合做減法,與用-執行運算的效果完全一樣
result2
= c
.difference(movies
)
print(result2
)# 用c集合減去books集合里的元素,改變c集合本身
c
.difference_update(movies
)
print("c集合的元素:" , c
)# 刪除c集合里的所有元素
c
.clear()
print("c集合的元素:" , c
)
print("***"*20)# 直接創建包含元素的集合
d
= {"python面向對象", 'python基礎', 'python爬蟲'}
print("d集合的元素:" , d
)# intersection()方法也是獲取兩個集合的交集,與用&執行運算的效果完全一樣
inter2
= d
.intersection(movies
)
print(inter2
)
# 計算兩個集合的交集,改變d集合本身
d
.intersection_update(movies
)
print("d集合的元素:" , d
)
print("***"*20)# 將range對象包裝成set集合
e
= set(range(5))
f
= set(range(3, 7))
print("e集合的元素:" , e
)
print("f集合的元素:" , f
)# 計算兩個集合的并集,不改變e集合本身
un
= e
.union(f
)
print('e和f執行并集的結果:', un
)
# 計算兩個集合的并集,改變e集合本身
e
.update(f
)
print('e集合的元素:', e
)'''
輸出結果:c集合的元素個數為
: 7
{'天龍八部', 6, '虛竹', '喬峰', '段譽', '天山姥姥', '射雕英雄傳'}
{'天龍八部', 6, '虛竹', '喬峰', '段譽', '射雕英雄傳'}
c集合的元素個數為
: 6
************************************************************
c集合是否包含
'喬峰'字符串
: True
************************************************************
movies集合的元素:
{'天龍八部', '射雕英雄傳'}
movies集合是否為c的子集合? True
c集合是否完全包含books集合? True
{'喬峰', '段譽', 6, '虛竹'}
{'喬峰', '段譽', 6, '虛竹'}
c集合的元素:
{6, '虛竹', '喬峰', '段譽'}
c集合的元素:
set()
************************************************************
d集合的元素:
{'python爬蟲', 'python基礎', 'python面向對象'}
set()
d集合的元素:
set()
************************************************************
e集合的元素:
{0, 1, 2, 3, 4}
f集合的元素:
{3, 4, 5, 6}
e和f執行并集的結果:
{0, 1, 2, 3, 4, 5, 6}
e集合的元素:
{0, 1, 2, 3, 4, 5, 6}
'''
三.set 集合運算符
- <=:相當于調用 issubset() 方法,判斷前面的 set 集合是否為后面的 set 集合的子集合。
- >=:相當于調用 issuperset() 方法,判斷前面的 set 集合是否為后面的 set 集合的父集合。
- –:相當于調用 difference() 方法,用前面的 set 集合減去后面的 set 集合的元素。
- &:相當于調用 intersection() 方法,用于獲取兩個 set 集舍的交集。
- ^:計算兩個集合異或的結果,就是用兩個集合的并集減去交集的元素。
#
!usr
/bin
/env python
#
-*- coding
:utf
-8 _
*-
"""
@Author
:猿說編程
@
Blog(個人博客地址
): www
.codersrc
.com
@File
:Python set集合
.py
@Time
:2021/04/04 11:00
@Motto
:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
"""# 使用花括號構建set集合
c
= {'喬峰',"段譽","虛竹","天龍八部","射雕英雄傳"}# 使用
set()函數(構造器)來創建set集合
movies
= set()
movies
.add("天龍八部")
movies
.add("射雕英雄傳")
print("movies集合的元素:" , movies
)
# issubset()方法與<=運算符效果相同
print("movies集合是否為c的子集合?", (movies
<= c
)) # 輸出False
print("***"*20)e
= set(range(5))
f
= set(range(3, 7))
print("e集合的元素:" , e
)
print("f集合的元素:" , f
)
# 對兩個集合執行異或運算
xor = e
^ f
print('e和f執行xor的結果:', xor)# 直接創建包含元素的集合
d
= {"python面向對象", 'python基礎', 'python爬蟲'}
print("d集合的元素:" , d
)
# 計算兩個集合的交集,不改變d集合本身
inter1
= d
& movies
print(inter1
)'''
輸出結果:movies集合的元素:
{'天龍八部', '射雕英雄傳'}
movies集合是否為c的子集合? True
************************************************************
e集合的元素:
{0, 1, 2, 3, 4}
f集合的元素:
{3, 4, 5, 6}
e和f執行
xor的結果:
{0, 1, 2, 5, 6}
d集合的元素:
{'python基礎', 'python面向對象', 'python爬蟲'}
set()'''
四.猜你喜歡
Python 字符串/列表/元組/字典之間的相互轉換Python 局部變量和全局變量Python type 函數和 isinstance 函數區別Python is 和 == 區別Python 可變數據類型和不可變數據類型Python 淺拷貝和深拷貝Python 遞歸函數Python sys 模塊Python 列表 listPython 元組 tuplePython 字典 dictPython 條件推導式Python 列表推導式Python 字典推導式Python 函數聲明和調用Python 不定長參數 *argc/**kargcs
未經允許不得轉載:猿說編程 ? Python set 集合
總結
以上是生活随笔為你收集整理的Python set集合 - Python零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。