鍵值對,映射類型app
dict中的key,必須是不可變數據類型,可哈希ide
value:任意數據類型spa
不可變數據類型:不可更改,元組,bool,int,str 可哈希code
可變數據類型:列表list,字典dict 不可哈希blog
優勢:二分查找查詢get
存儲大量的關係型數據it
特色:3.5以前無序event
dic = { 'name': ['大門', '小明'], 'py': [{'人數': '70', 'avg': '18'}], True: 1, (1, 2, 3): 'wuli', 2:'eref', } print(dic) #{'name': ['大門', '小明'], 'py': [{'人數': '70', 'avg': '18'}], True: 1, (1, 2, 3): 'wuli', 2: 'eref'}
dict1 ={'age': 18, 'name': 'r', 'sex':'femal' } dict1['high'] = 155 #沒有鍵值對,添加 print(dict1) dict1['age'] = 16 #有鍵,則覆蓋 print(dict1) ''' {'age': 18, 'name': 'r', 'sex': 'femal', 'high': 155} {'age': 16, 'name': 'r', 'sex': 'femal', 'high': 155} '''
setdefault()有鍵值,不作改變,沒有,增長class
#{'age': 18, 'name': 'r', 'sex': 'femal', 'weight': None} dict1.setdefault('weight',150) #{'age': 18, 'name': 'r', 'sex': 'femal', 'weight': 150} dict1.setdefault('name','dh') print(dict1) #{'age': 18, 'name': 'r', 'sex': 'femal', 'weight': 150}
pop() 有返回值,按鍵刪除cli
print(dict1.pop('age')) print(dict1) # 18 # {'name': 'r', 'sex': 'femal'} print(dict1.pop('bsjh','沒有此鍵')) #若不知道字典裏有沒有此鍵,則加個參數 print(dict1) # 沒有此鍵 # # {'name': 'r', 'sex': 'femal'}
popitem()隨機刪除,有返回值
dict1.popitem() print(dict1) #{'age': 18, 'name': 'r'}
clear()清空
del(‘key’)/dict
dict1['age']=18
update() 把一個字典,覆蓋更新到目標字典中
dict2 ={ 'name': 'r', 'weight':'75' } dic ={'age': 18, 'name': 'r', 'sex':'femal'} dict2.update(dic) print(dic) print(dict2) # {'age': 18, 'name': 'r', 'sex': 'femal'} # {'name': 'r', 'weight': '75', 'age': 18, 'sex': 'femal'}
print(dict1.keys()) print(dict1.values()) print(dict1.items())
dict_keys(['age', 'name', 'sex'])
dict_values([18, 'r', 'femal'])
dict_items([('age', 18), ('name', 'r'), ('sex', 'femal')])
for i in dict1: #for i in dict1.keys(): print(i) '''age name sex''' for i in dict1.values(): print(i) '''18 r femal''' for i in dict1.items(): print(i) '''('age', 18) ('name', 'r') ('sex', 'femal')'''
for k,v in dict1.items(): print(k,v) # age 18 # name r # sex femal
v1 =dict1['name'] print(v1) print(dict1.get('name')) print(dict1.get('name1','NNN')) # r # r # NNN
dic = { 'name': ['alex','wusir','taibai'], 'py9':{ 'time':'1213', 'learn_money':19800, 'address':'CBD' }, 'age':21 } dic['age'] = 56 dic['name'].append('ritian') print(dic) {'name': ['alex', 'wusir', 'taibai', 'ritian'], 'py9': {'time': '1213', 'learn_money': 19800, 'address': 'CBD'}, 'age': 56} dic['name'][1] = dic['name'][1].upper() print(dic) #{'name': ['alex', 'WUSIR', 'taibai'], 'py9': {'time': '1213', 'learn_money': 19800, 'address': 'CBD'}, 'age': 21} dic['py9']['famel'] = 6 print(dic) #{'name': ['alex', 'wusir', 'taibai'], 'py9': {'time': '1213', 'learn_money': 19800, 'address': 'CBD', 'famel': 6}, 'age': 21}
小結
dict: dict={'name:'alex'}
增: dict[‘age’]=21 存在就覆蓋
dic.setdefault()沒有就增長
刪除:pop()按key刪除,有返回值
clear()
del dic['name']
popitem()隨機刪除,返回時元組
改:update
查:
dic.keys() 鍵
dic.values() 值
dic.items() 鍵值對
for k,v in dic.items():
print(k,v)
get
dc.get(key,None)