--- title: 5.Python 集合、字典的基本運算 - Set、Dictionary By 彭彭 tags: 學習, 紀錄 --- # 5.Python 集合、字典的基本運算 - Set、Dictionary By 彭彭 {%youtube L3-KuGYhw78 %} python 程式設計入門 集合 字典的運算 ## 集合 * 基本觀念:一群資料 沒有順序性 (列表有順序概念 集合沒有順序概念) 1.判斷資料是否存在 使用in和not in運算符號 in 有在裡面 not in 沒在裡面 2.交集& 聯集|:使用& |和運算符號(判斷兩個集合作交集或連擊的運算) 3.差集 反交集:使用- 和^運算符號 4.字串拆解為集合:set(字串) ## 字典 * 基本觀念:鍵值對(key-Value Pair) 索引對一個資料 * key 對應Value 字典 [key] 字典[key]=Value * 判斷資料是否存在 使用in和not in運算符號 * 刪除鍵值對:使用del 運算關鍵字 * 從列表建立字典:以列表的資料為基礎來建立字典 ## 操作 ### 集合的運算 用大括號 把資料放進去 * 用 in /not in 確認資料有沒有在其中 s1={3,4,5} 一個集合 三個資料 print(3 in s1) 用in看看3有沒有在集合裡 若有顯示True > True s1={3,4,5} 一個集合 三個資料 print(10 in s1) 用in看看10有沒有在集合裡 若有顯示True 無則顯示False > False s1={3,4,5} 一個集合 三個資料 print(10 not in s1) 用 not in驗證10沒有在集合裡 若沒有顯示True > True * 集合的運算 1. 交集 & s1={3,4,5} s2={4,5,6,7} s3=s1&s2 #交集:取兩個集合中,相同的資料 print(s3) >{4,5} 2. 聯集 | s1={3,4,5} s2={4,5,6,7} s3=s1|s2 #聯集:取兩個集合中的所有資料 但不重複取 print(s3) >{3,4,5,6,7} 3. 差集 - p.s -對數字做減是減法 對集合做簡就是 差集 s1={3,4,5} s2={4,5,6,7} s3=s1-s2 #差集:從s1中,減去和s2 重疊的部分 (注意s1-s2 跟s2-s1是不一樣的 有順序之分) print(s3) >{3} 4. 反交集 ^ s1={3,4,5} s2={4,5,6,7} s3=s1^s2 #反交集:取兩個集合中,不重複的部分 (取不重疊的 print(s3) >{3,6,7} * 把字串中的字母拆解成集合:set(字串) -set(字串)把Hello 拆解成集合 重複不會進來 沒有順序性 字串拆解 s=set("Hello") #set(字串) print(s) > {'l','H','e','o'} s=set("Hello") print("H" in s) > True (H有沒有在文字裡面 先用set把文字拆解成集合 再用in 來檢查是否於字串中) s=set("Hello") print("A" in s) > False * 字典的運算方式是Key對Value 用大括號 key-value配對 1. 字典基本操作:取得字典+大括號{} dic={"apple":"蘋果","bug":"蟲蟲"} 兩個配對 print(dic["apple"]) 輸入key就會取得value >蘋果 2. 字典修改 dic={"apple":"蘋果","bug":"蟲蟲"} 兩個配對 dic["apple"]="小蘋果" 把原先對應的“蘋果” 改成“小蘋果” print(dic["apple"]) 輸入key就會取得value >小蘋果 3. 判斷key是否存在 用in 跟not in dic={"apple":"蘋果","bug":"蟲蟲"} print("apple" in dic) #in 跟 not in 判斷的對象是key(apple跟bug) 問電腦apple 是否包還在字典裡 有顯示True > True dic={"apple":"蘋果","bug":"蟲蟲"} print("test" in dic) >False dic={"apple":"蘋果","bug":"蟲蟲"} print("test" not in dic) >Ture 4. del 刪除字典中的鍵值對(key-value pair) 用key當代表 刪除時 整個鍵值會刪掉 dic={"apple":"蘋果","bug":"蟲蟲"} print(dic) del dic["apple"] print(dic) >{"apple":"蘋果","bug":"蟲蟲"} >{"bug":"蟲蟲"} 5. 從列表的資料產生字典 dic={x:x* 2 for x in [3,4,5]} # for跟in 是固定的)x可代換 print(dic) >{3:6, 4:8, 5:10} key是x value 是x*2 x到底是什麼 要從列表進來 中括號就是一個列表。 把列表轉換成鍵值對 最後產生出的的字典 為{3:6, 4:8, 5:10}