字典:采用鍵值對存儲數據的數據類型,字典的鍵必須是不可變的數據類型
補充:
不可變(可哈希)數據類型:str,bool,int,tuple
可變(不可哈希)數據類型:list, dict, set
對str的所有操作都是產生一個新字符串,並沒有改變原字符串的內容
哈希:是把元素通過hash算法變成內存地址
容器型數據類型:list, tuple,dict,set
非容器型數據類型:str,bool,int,float
1、增
# 用鍵來添加,有鍵則覆蓋,無鍵則添加 dic = {'name': 'rock', 'age': 22, 'gender': 'male'} dic['height'] = 170 print(dic) # dic.setdefault()添加,有鍵則不加,無鍵則添加 dic.setdefault('height', 175) print(dic)
2、刪
# dic.pop() 按 鍵 刪,有鍵則返回該鍵的value,無鍵則需設置返回值 print(dic.pop('gender')) # 有返回值返回對應的value值 print(dic) print(dic.pop('height', '沒有此鍵')) print(dic) # dic.popitem() 3.5版本之前隨機刪除字典中的元素,3.5之后只刪除最后一個元素 dic.popitem() print(dic) # 清空字典 print(dic.clear()) print(dic) # 按 鍵刪 del dic['age'] print(dic) del dic # 直接在內存中刪除字典 print(dic)
3、改
# 將dic的鍵值對覆蓋到dic中,dic1中有鍵覆蓋,無鍵添加 dic1 = {'name': 'chen', 'height': 175} dic1.update(dic) print(dic1) print(dic) dic.update(name='chen') # 有鍵則覆蓋 print(dic) dic.update(height=170) # 無鍵則添加 print(dic)
4、查
# 直接按鍵查 print(dic['name']) # 用get()鍵查 print(dic.get('name'))
5、fromkeys生成字典 注意值如果是可變的數據類型,那么所有的值都是一個內存地址
dic = dict.fromkeys('age', '22') print(dic) d = dict.fromkeys(['name', 'age'], 'rock') print(d)
# for 循環查, dic.values(), dic.keys(),dic.items()
d1 = {'name': 'rock'} d1.update(age=20) s = d1.items() print(s, type(s)) for i in s: print(i) d3 = dict(s) print(d3)
用dict和zip生成字典
keys = ['a', 'b', 'c'] values = [1, 2, 3] dictionary = dict(zip(keys, values)) print (dictionary)