字典是什么莽龟?
內置的數(shù)據(jù)結構之一岁经,與列表一樣,是可變序列
格式:“鍵:?值”何荚,鍵值對囱淋。相當于列表當中的一個元素
以 鍵值對 的方式存儲數(shù)據(jù),列表:有序(第一個放進去的元素在第一個位置上) vs 字典:無序
放入字典中的 鍵 餐塘,必須是一個不可變序列
***不可變序列妥衣,就是str字符串等,目前學到2個可變序列就是:列表、字典税手。
哈希函數(shù)
往字典中 存儲數(shù)據(jù)時蜂筹,要經過一個叫?哈希函數(shù)?的工序——要把?鍵?放入到?哈希函數(shù)?中 進行一個計算(計算的是存儲位置)——所以要求 鍵 必須是不可變序列(str、int芦倒、bool......)艺挪。
hash函數(shù)計算出 鍵入內容 所在位置
新建 字典——{}并賦值、dict(name=‘lax兵扬,age=21’)
直接用花括號時麻裳,用 冒號: 連接? ? or? ? 用dict()函數(shù)時,用 等號= 賦值?
查找 字典 元素——對象.get()
最好用get()器钟,直接用[]指定內容掂器,會對不存在的元素查找 報錯
判斷key——print(?in/not in 對象) 俱箱;清空所有——對象.clear()国瓮,刪除——del 對象
新增、修改——用方括號指定對象并賦值
新增狞谱、修改——用方括號指定對象并賦值
獲取字典視圖(keys乃摹、values、鍵值對)的方法——對象.keys/values/items()并賦值給一個新對象
及 將獲取的視圖 轉換成列表print(list(新對象))
獲取的視圖 類型是字典_鍵/值/鍵值對
字典的遍歷
for in循環(huán)用來遍歷
字典的特點
key不可以重復(重復 就被后一個value覆蓋前一個value)跟衅,value可以重復
key不可以重復(重復 就被后一個value覆蓋前一個value)
Mike重復孵睬,所以23把2覆蓋了
字典會浪費較大內存
key之間的空位就是浪費的空間,因為key所在的位置是由 hash函數(shù) 指定的伶跷,難以避免會存在“空位”
字典生成式——for in+zip()的使用
用zip()
格式是:{item:price? ?for item,price in zip(items掰读,prices)}
將item:price 換成 item.upper():price ——> 字符串的小寫變大寫