8天Python從入門到精通【itheima】-73~74(數據容器“集合”+案例練習)

目錄

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日


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908373.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908373.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908373.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

國芯思辰| AD7894的優質替代方案:SC1424模數轉換器在分布式控制系統中的應用優勢

分布式控制系統將控制任務分散至多個節點&#xff0c;各節點協同工作以實現復雜的控制目標。在這一架構下&#xff0c;系統ADC提出了嚴苛要求。高精度是精準采集各類模擬信號&#xff08;如傳感器輸出的電壓、電流信號&#xff09;的基礎&#xff0c;關乎控制決策的準確性&…

Unity基礎-數學向量

Unity基礎-數學向量 二、向量相關用法 概述 向量在Unity游戲開發中扮演著重要角色&#xff0c;用于表示位置、方向、速度等。Unity提供了Vector2、Vector3等結構體來處理向量運算。 1. 向量基礎操作 1.1 向量創建和訪問 // 創建向量 Vector3 position new Vector3(1, 2,…

Neo4j 數據建模:原理、技術與實踐指南

Neo4j 作為領先的圖數據庫,其核心優勢在于利用圖結構直觀地表達和高效地查詢復雜關系。其數據建模理念與傳統關系型數據庫截然不同,專注于實體(節點)及其連接(關系)。以下基于官方文檔,系統闡述其建模原理、關鍵技術、實用技巧及最佳實踐: 一、 核心原理:以關系為中心…

volka 25個短語動詞

以下是分句分段后的內容&#xff1a; 3,000. Thats 95% of spoken English. And I am teaching you all of these words. First, Ill teach you todays words. And then youll hear them in real conversations. With my brother. Stick around until the end, because witho…

服務器中日志分析的作用都有哪些

服務器日志是用來檢測和排查可疑行為的主要工具&#xff0c;運維團隊可以通過分析和解讀日志文件&#xff0c;發現服務器中潛在的網絡安全威脅或異常活動&#xff0c;下面&#xff0c;就讓小編和大家一起來了解一下服務器中日志分析的作用都有什么吧&#xff01; 對于服務器中的…

嵌入式硬件篇---龍芯2k1000串口

針對串口錯誤 “device reports readiness to read but returned no data (Device disconnected or multiple access on port?)” 的排查和解決方法 硬件方面 檢查連接 確認串口設備(如串口線、連接的模塊等)與龍芯設備之間的物理連接是否牢固,沒有松動、脫落情況。嘗試重新…

基于langchain的簡單RAG的實現

閑來無事&#xff0c;想研究一下RAG的實現流程&#xff0c;看網上用langchain的比較多&#xff0c;我自己在下面也跑了跑&#xff0c;代碼很簡單&#xff0c;以次博客記錄一下&#xff0c;方便回顧 langchain LangChain 是一個基于大型語言模型&#xff08;LLM&#xff09;開發…

視頻監控平臺建設方案

第三方視頻監控平臺是整合視頻監控、門禁、報警等多業務的安防軟件系統,具備兼容性、開放性、多業務整合和多級聯網能力。其核心價值在于兼容友商編解碼設備(如 IPC、DVR)、整合第三方子系統(如報警聯動)、支持多級多域架構(適應平安城市等大規模場景)及提供集中存儲方案…

天機學堂(學習計劃和進度)

經過前面的努力&#xff0c;我們已經完成了《我的課程表》相關的功能的基礎部分&#xff0c;不過還有功能實現的并不完善。還記得昨天給大家的練習題嗎&#xff1f;《查詢我正在學習的課程》&#xff0c;在原型圖中有這樣的一個需求&#xff1a; 我們需要在查詢結果中返回已學習…

軟件項目管理(3) 軟件項目任務分解

一、相關概念 1.任務分解的方法和步驟 &#xff08;1&#xff09;方法 模板參照方法&#xff1a;參照有標準或半標準的任分解結構圖類比方法&#xff1a;任務分解結構圖經常被重復使用&#xff0c;具有相似性自頂向下方法&#xff1a;一般->特殊&#xff0c;演繹推理從大…

Vite 雙引擎架構 —— Esbuild 概念篇

Vite 底層采用 雙引擎架構&#xff0c;核心構建引擎是 Esbuild 和 Rollup&#xff0c;二者在開發和生產環境中分工協作&#xff0c;共同實現高性能構建。不可否認&#xff0c;作為 Vite 的雙引擎之一&#xff0c;Esbuild 在很多關鍵的構建階段(如依賴預編譯、TS 語法轉譯、代碼…

leetcode hot100 鏈表(二)

書接上回&#xff1a; leetcode hot100 鏈表&#xff08;一&#xff09;-CSDN博客 8.刪除鏈表的倒數第N個結點 class Solution { public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* currhead;int len0;while(curr){currcurr->next;len;}int poslen-n…

Compose Multiplatform 實現自定義的系統托盤,解決托盤亂碼問題

Compose Multiplatform是 JetBrains 開發的聲明式 UI 框架&#xff0c;可讓您為 Android、iOS、桌面和 Web 開發共享 UI。將 Compose Multiplatform 集成到您的 Kotlin Multiplatform 項目中&#xff0c;即可更快地交付您的應用和功能&#xff0c;而無需維護多個 UI 實現。 在…

C++11 Move Constructors and Move Assignment Operators 從入門到精通

文章目錄 一、引言二、基本概念2.1 右值引用&#xff08;Rvalue References&#xff09;2.2 移動語義&#xff08;Move Semantics&#xff09; 三、移動構造函數&#xff08;Move Constructors&#xff09;3.1 定義和語法3.2 示例代碼3.3 使用場景 四、移動賦值運算符&#xff…

Linux配置yum 時間同步服務 關閉防火墻 關閉ESlinux

1、配置yum 1.1、Could not resolve host: mirrorlist.centos.org; 未知的錯誤 https://blog.csdn.net/fansfi/article/details/146369946?fromshareblogdetail&sharetypeblogdetail&sharerId146369946&sharereferPC&sharesourceRockandrollman&sharefr…

使用 uv 工具快速部署并管理 vLLM 推理環境

uv&#xff1a;現代 Python 項目管理的高效助手 uv&#xff1a;Rust 驅動的 Python 包管理新時代 在部署大語言模型&#xff08;LLM&#xff09;推理服務時&#xff0c;vLLM 是一個備受關注的方案&#xff0c;具備高吞吐、低延遲和對 OpenAI API 的良好兼容性。為了提高部署效…

基于sqlite的任務鎖(支持多進程/多線程)

前言 介紹 任務鎖,在多進程服務間控制耗時任務的鎖,確保相同id的耗時任務同時只有一個在執行 依賴 SqliteOp,參考這篇文章 https://blog.csdn.net/weixin_43721000/article/details/137019125 實現方式 utils/taskLock.py import timefrom utils.SqliteOp import Sqli…

html表格轉換為markdown

文章目錄 工具功能亮點1.核心實現解析1. 剪貼板交互2. HTML檢測與提取3. 轉換規則設計 2. 完整代碼 在日常工作中&#xff0c;我們經常遇到需要將網頁表格快速轉換為Markdown格式的場景。無論是文檔編寫、知識整理還是數據遷移&#xff0c;手動轉換既耗時又容易出錯。本文將介紹…

IDEA 中 Undo Commit,Revert Commit,Drop Commit區別

一、Undo Commit 適用情況&#xff1a;代碼修改完了&#xff0c;已經Commit了&#xff0c;但是還未push&#xff0c;然后發現還有地方需要修改&#xff0c;但是又不想增加一個新的Commit記錄。這時可以進行Undo Commit&#xff0c;修改后再重新Commit。如果已經進行了Push&…

【Linux】Linux 進程間通訊-管道

參考博客&#xff1a;https://blog.csdn.net/sjsjnsjnn/article/details/125864580 一、進程間通訊介紹 1.1 進程間通訊的概念 進程通信&#xff08;Interprocess communication&#xff09;&#xff0c;簡稱&#xff1a;IPC 本來進程之間是相互獨立的。但是由于不同的進程…