目錄
73節-集合的基礎定義和操作
1.學習目標
2.為什么要用集合
3.集合的定義
4.關于集合的常用操作
【1】添加新元素:add方法
【2】移除元素:remove方法
【3】隨機取出元素:pop方法
【4】清空集合:clear方法
【5】取出兩個集合的差集:difference方法(取出集合1中集合2沒有的元素)
【6】消除差集:difference_update方法
【6】合并兩個集合的方法:union方法
【7】統計集合的元素數量:len方法
【8】集合的遍歷
【9】集合常用操作的總結
5.集合的特點
6.小節總結
74節-關于集合的案例練習:信息去重
1.案例需求
2.代碼實戰
好了,又一篇博客和代碼寫完了,勵志一下吧,下一小節等等繼續:
73節-集合的基礎定義和操作
1.學習目標
1.集合的定義格式
2.集合的特點
3.集合的常見操作
2.為什么要用集合
集合的最大特點: 1.無需? ?2.不支持元素的重復【自帶去重的功能】
3.集合的定義
# 74節# 演示數據容器——集合的使用# 定義集合
my_set={"傳智教育","黑馬程序員","itheima","傳智教育","黑馬程序員","itheima","傳智教育","黑馬程序員","itheima"}
my_set_empty=set() #空集合
print(f"my_set的內容是:{my_set};類型是:{type(my_set)}")
print(f"my_set_empty的內容是:{my_set_empty};類型是:{type(my_set_empty)}")
# my_set的內容是:{'傳智教育', 'itheima', '黑馬程序員'};類型是:<class 'set'> [集合有自動去重的功能;并且是無序的]
# my_set_empty的內容是:set();類型是:<class 'set'>
4.關于集合的常用操作
由此得到一點:因為集合是無序的,所以不支持下表索引的訪問,所以集合不是序列。
【1】添加新元素:add方法
# 添加新元素
my_set.add("Python")
my_set.add("傳智教育") #集合有去重的功能,重復的元素被去重
print(f"my_set添加后的內容是:{my_set}")
【2】移除元素:remove方法
# 移除元素
my_set.remove("黑馬程序員")
print(f"my_set移除黑馬程序員之后,他的結果是:{my_set}") #在 Python 中,集合(set)移除元素的操作,默認是直接在原集合上修改,不會返回新集合
【3】隨機取出元素:pop方法
集合的pop方法,有返回結果
# 隨機取出一個元素
my_set={"傳智教育","黑馬程序員","itheima"}
element=my_set.pop()
print(f"my_set的內容變成了:{my_set}")#集合的pop方法,有返回結果
print(f"取出的元素是:{element}")
# my_set的內容變成了:{'黑馬程序員', '傳智教育'}
# 取出的元素是:itheima
【4】清空集合:clear方法
# 清空集合
my_set={"傳智教育","黑馬程序員","itheima"}
my_set.clear()
print(f"集合被清空后的結果是:{my_set}")
# 集合被清空后的結果是:set()
【5】取出兩個集合的差集:difference方法(取出集合1中集合2沒有的元素)
# 取兩個集合的差集
set1={1,2,3}
set2={1,5,6}
set3=set1.difference(set2)
set4=set2.difference(set1)
print(f"set1和set2的差集是:{set3}") #2,3 set1和set2的差集是:{2, 3}
print(f"set2和set1的差集是:{set4}") #5,6 set2和set1的差集是:{5, 6}
print(f"取差集后,查看原有的set1集合是否發生改變:{set1}") #取差集后,查看原有的set1集合是否發生改變:{1, 2, 3}
print(f"取差集后,查看原有的set2集合是否發生改變:{set2}") #取差集后,查看原有的set2集合是否發生改變:{1, 5, 6}
# 由此可見,取出差集后,原有的集合不會發生變化
【6】消除差集:difference_update方法
在在集合1內,消除與集合2內容相同的元素。同時,集合1被修改,集合2不發生變化。
# 消除兩個集合的差集
set1={1,2,3}
set2={1,5,6}
set1.difference_update(set2)
print(f"set1的結果變成:{set1}") #set1的結果變成:{2, 3}
print(f"set2的結果變成:{set2}") #set2的結果變成:{1, 5, 6}
【6】合并兩個集合的方法:union方法
# 兩個集合合并為一個
set1={1,2,3}
set2={1,5,6}
set3=set1.union(set2)
print(f"兩個集合合并之后的結果是:{set3}") #兩個集合合并之后的結果是:{1, 2, 3, 5, 6}
print(f"set1的結果變成:{set1}") #set1的結果變成:{1, 2, 3}
print(f"set2的結果變成:{set2}") #set2的結果變成:{1, 5, 6}
# 會返回一個新的集合,原有集合不發生變化
【7】統計集合的元素數量:len方法
因為集合自動去重,所以重復的集合元素只算一個
# 統計集合元素數量
my_set={"傳智教育","黑馬程序員","itheima","傳智教育","黑馬程序員","itheima"}
len1=len(my_set)
print(f"集合my_set內元素的數量有:{len1}個。")#因為集合自動去重,所以重復的集合元素只算一個
【8】集合的遍歷
集合的遍歷 【不能用 while循環,因為集合是無序的,所以不支持下標索引】只能用for循環
# 集合的遍歷 【不能用 while循環,因為集合是無序的,所以不支持下標索引】
my_set={1,2,3,4,5}
for element in my_set:print(f"集合my_set中的元素有:{element}")
# 集合my_set中的元素有:1
# 集合my_set中的元素有:2
# 集合my_set中的元素有:3
# 集合my_set中的元素有:4
# 集合my_set中的元素有:5
【9】集合常用操作的總結
5.集合的特點
6.小節總結
74節-關于集合的案例練習:信息去重
1.案例需求
2.代碼實戰
# 75節-關于集合的案例練習:信息去重# 定義列表
my_list=["黑馬程序員","傳智播客","黑馬程序員","傳智播客","itheima","itcast","itheima","itcast","best"]# 1.定義一個空集合
my_set=set()# 2.通過for循環進行遍歷列表中的元素,然后把列表中的元素添加到空的集合中
for i in my_list:my_set.add(i)
print(f"有列表:{my_list}")
print(f"存入集合后的結果:{my_set}")
# 有列表:['黑馬程序員', '傳智播客', '黑馬程序員', '傳智播客', 'itheima', 'itcast', 'itheima', 'itcast', 'best']
# 存入集合后的結果:{'itheima', 'itcast', '傳智播客', 'best', '黑馬程序員'}
好了,又一篇博客和代碼寫完了,勵志一下吧,下一小節等等繼續:
致帕特里克君:
展信佳。
獲悉你在學習大數據專業時,每日堅持鉆研代碼、整理博客,甚至不惜讓手指承受辛勞,這份毅力與熱忱令我深感觸動。你的筆記中,對Python集合的去重特性、差集運算等細節的嚴謹推敲,正是技術人最珍貴的品質——在基礎中沉淀,在重復中精進。
你提到"像拳擊手晨跑"的比喻,恰如其分。我曾執掌現代建設時,亦每日清晨巡視工地,核對圖紙與施工細節。外人看來枯燥的砂石與鋼筋,卻是摩天大樓屹立不倒的根基。技術之路,從無捷徑。每一行代碼的錘煉,都在為未來解決更復雜的問題鍛造利刃。
你偶爾的自我懷疑,恰是突破的前奏。當年我主導清溪川復原工程時,質疑之聲不絕于耳:在繁華都市中心挖掘河道是否癡人說夢?但正是對基礎數據(水文、地質、交通流量)的數萬次驗算,讓藍圖終成現實。大數據專業的你,當明白真理藏于毫厘:今日對"集合去重"的透徹理解,未來或可清洗千萬級數據中的噪點,洞見他人未察之規律。
手腕的酸痛是身體的警訊,卻也是意志的勛章。望你效仿韓國"任勞任怨"(????)的精神,但勿忘適時休整——技術之路如馬拉松,調息方能致遠。
請堅信:你筆下每一段代碼,皆是未來數字世界的基石;你今日之躬耕,必在智能時代收獲豐碩之果。
以《論語》與你共勉:"工欲善其事,必先利其器。"?你此刻磨礪的"集合"之器,終將成為劈開數據瀚海的舟楫。
謹祝學業精進,身體康健。
李明博 謹啟
2025年6月6日