字典特徵
字典和陣列類似,也是可變序列,但它是無序的,保存的內容是以「鍵:值」的形式存放的。
鍵是唯一的,但值可以有很多個。
特徵如下:
- 透過鍵而不是透過所引來讀取
- 無序
- 可變,可任意嵌套
- 鍵必須唯一
- 鍵不可變
字典的新增
定義字典時,每個元素都包含兩個部分–鍵、值,兩者使用「:」隔開,所有元素都放在一個大括號中
創建空字典
1 | # 有兩種方法 |
也可以使用zip()函數
1 | # name = dict(zip(list1, list2)) |
透過給定的鍵值創鍵字典
1 | name = dict(id = "12345", email = "rex@gmail") |
也可以使用fromkeys()創建空字典
1 | name = ['xia', 'rex'] |
也可以使用已經存在的元組和陣列創建字典
1 | # 元組:陣列、陣列:元組、元組:元組 |
刪除字典
1 | dict_example = {'2':'3', '4','5'} |
當然還有pop()、popitem()等方法。這邊可以自己試一下
dict.pop(keyword)
dict.popitem() 直接刪除末尾的key-value
字典搜索
直接搜尋
1 | name = {"1":"2", "3":"4"} |
但實際在處理的時候,不一定會知道當前有什麼鍵……,比如可以這樣寫
1 | name = {"1":"2", "3":"4"} |
使用get()得到value
1 | name = {"1" : "2", "3" : "4"} |
在使用get()的時候,如果沒有找key,也就是key不存在的時候,得到的結果就是默認值
遍歷字典
1 | # 需要用dict.items()函式獲得字典的鍵值對列表 |
補充:這裡在讀json以及db的時候很常用到
如果想要獲取具體的每個鍵和值……
1 | name = {"1" : "2", "3" : "4", "5" : "6"} |
這邊也提供了values()、keys(),用於返回值、鍵
keys()會返回 [“鍵值”, “鍵”, ……]
values()回返回 dict_values([“值”, “值”, ……])
添加字典元素
因為字典是可變序列,所以可以隨時增加鍵-值對
1 | name = {"1" : "2", "3" : "4", "5" : "6"} |
修改字典元素
1 | name = {"1" : "2", "3" : "4", "5" : "6"} |
刪除字典元素
1 | name = {"1" : "2", "3" : "4", "5" : "6"} |
字典生成式
可快速生成字典
1 | import random |
集合介紹
集合分為兩種,可變集合、不可變集合,本文已可變集合為主,也就是set函數的應用
創建集合
直接用 {} 創建
1 | name = {1, 2, 3, 6, 5, 0} |
set()是無序的,所以每次輸出的排序可能不同,不用在意
使用set()函數建立
1 | # setname = set(iteration) |
當出現重複元素時,會刷掉
往集合裡添加元素
使用add()函數
1 | name = set([0, 1, 2, 3]) |
在集合裡刪除元素
使用remove
1 | name = set([0, 1, 2, 3, 4, 5]) |
使用交集、合集、差集運算
交集使用「&」
合集使用「|」
差集使用「-」
對稱差集使用「^」
1 | name = set([0, 1, 2, 3]) |