1. 什麼是字典 字典是用{}表示,以key:value的形式來保存數據的,其查找效率比較高 坑: 字典存儲數據時是用哈希值來存儲的,演算法不能變(python的) 數據必須是可哈希的(不可變的),字典中的key必須是可哈希的(不可變的) 2. 字典的增刪改查 1. 添加 dic[新key] = 值 ...
1. 什麼是字典
字典是用{}表示,以key:value的形式來保存數據的,其查找效率比較高
坑:
字典存儲數據時是用哈希值來存儲的,演算法不能變(python的)
數據必須是可哈希的(不可變的),字典中的key必須是可哈希的(不可變的)
dic = {"jay":"周傑倫", "jj": "林俊傑", "jolin":"蔡依林"} print(dic['jay']) # 周傑倫 dic['jay'] = "麻花藤" print(dic)#{'jay': '麻花藤', 'jj': '林俊傑', 'jolin': '蔡依林'}
2. 字典的增刪改查
1. 添加
dic[新key] = 值
dic = {"義大利": "李雲龍", "美國": "美國往事"} dic["日本"] = "東京審判" # 新key表示添加 dic['南韓'] = "釜山行" print(dic)#{'義大利': '李雲龍', '美國': '美國往事', '日本': '東京審判', '南韓': '釜山行'}
setdefault()
有添加功能,dic.setdefault("key","value")
如果key是存在的則不添加.
流程:判斷你給的key是否存在於字典中,如果存在不添加.如果不存在,執行新增的操作.
2. 刪除
pop(key)
dic = {"張藝謀":"紅高粱", "李安":"斷臂山", "陳凱歌":"霸王別姬", "郭德綱":"祖宗十九代"} dic.pop("郭德綱") # pop(key) 刪除郭德綱 dic.popitem() # 隨機刪除一項. 在python早期版本 字典是無序的. del dic["李安"] del dic["key"] 刪除指定一項
dic.clear() 清空
3. 修改
dic[老key] = 值
dic = {"jay":"周傑倫", "jj": "林俊傑", "jolin":"蔡依林"} dic['jay'] = "麻花藤" print(dic)#{'jay': '麻花藤', 'jj': '林俊傑', 'jolin': '蔡依林'}
update() 更新字典
dic1 = {"趙四":"劉曉光", "劉能":"王曉利", "王木生":"範偉"} dic2 = {"趙四":"寶寶", "劉能":"萌萌", "皮校長":"皮長山"} dic1.update(dic2) # 把dic2懟到dic1裡面. 把dict2中的內容更新到dic1 print(dic1) print(dic2) #{'趙四': '寶寶', '劉能': '萌萌', '王木生': '範偉', '皮校長': '皮長山'} #{'趙四': '寶寶', '劉能': '萌萌', '皮校長': '皮長山'}
4. 查詢
dic[key] 直接使用key獲得value,如果key不存在則報錯
get(key, 值) dic.get(key,值) 如果輸入沒有的key則會返回值 如果沒有值 則返回預設的None
setdefault(key, value)
#第一個功能是添加(當key不存在). 第二個功能是查詢(根據你給的key查詢) # 整個執行流程: 判斷給的key是否存在. 如果存在. 就不執行新增流程.直接查詢出這個key對 #應的value # 如果key不存在. 先執行新增操作. 再使用key把對應的value查詢出來 dic1 = {"趙四":"劉曉光", "劉能":"王曉利", "王木生":"範偉"} ret = dic1.setdefault("皮長山", "皮校長") print(ret) # 皮校長 ret = dic1.setdefault("王木生", "寶寶") print(ret) # 範偉
5. 遍歷,字典是一個可迭代對象
dic = {"趙四":"劉曉光", "劉能":"王曉利", "王木生":"範偉"} # 1. 使用for迴圈直接遍歷字典的key for key in dic: print(key) print(dic[key]) # 2. 可以使用字典的items()+解構可以直接獲取到key和value for k, v in dic.items(): print(k) print(v)
3. 字典的相關操作
1. keys() 獲取到所有的鍵
2. values() 獲取到所有的值
3. items() 拿到所有的鍵值對
for k, v in dic.items(): # 遍歷字典最簡單的方案 # print(item) # ('趙四', '劉曉光') # k, v = item # 解構 # k = item[0] # v = item[1] print(k, v)
4. 字典的嵌套
字典的嵌套. 字典套字典
5. 集合(不重要). 去重覆
集合中的元素是不重覆的. 必須是可哈希的(不可變), 字典中的key
空集合:set()
空元組:tuple()
空列表:list()
非空集合: {123}集合, 集合其實就是不存value的字典