Python中字典的增、刪、建立、索引與字典方法clear,copy,formkeys,get,has_key,popitem,update
阿新 • • 發佈:2019-02-12
#_*_coding:UTF-8_*_ # 1.字典序的建立 # 1.1基本字典的建立 # dictionary_name={key1:value1,key2:value2,...} # dictionary_name={} 空字典 # 字典中的鍵是唯一的,而值並不是唯一。 userDic={'0003':'June','0002':'Tom'} print userDic # 輸出:{'0002': 'Tom', '0003': 'June'} # 1.2使用dict()函式建立字典 userDic=[(2,'maxianglin'),(1,'wanglili'),(3,'malinlin')] dic_userDic=dict(userDic) print dic_userDic # 輸出:{1: 'wanglili', 2: 'maxianglin', 3: 'malinlin'} userDic=dict(name='maxianglin',age=24,sex='0') print userDic # 輸出:{'age': 24, 'name': 'maxianglin', 'sex': '0'} # 2字典序的基本操作 # 2.1向字典中新增元素 # a)可以呼叫setdefault(key,[,default_value]) # b)dictionary_name['key']='value',這條語句中的key不在字典dictionary_name的key列表中,那麼字典dictionary_name將被新增一條新的對映(key:value);如果鍵key已經存在字典dictionary_name中,那麼字典dictionary_name將直接修改key對應的value值。 # pirnt dictionary_name['key'] 如果訪問的元素不存在時,則會報錯~! userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} userDic.setdefault('0004','zhuhongtao') # 新增元素,鍵為0004,值為zhuhongtao print userDic userDic.setdefault('0001','zhangfang') # 向列表中新增值,但是引數0001在userDic字典中已經存在 print userDic # 輸出: #{'0004': 'zhuhongtao', '0001': 'maxianglin', '0002': 'wanglili', '0003': 'malinlin'} #{'0004': 'zhuhongtao', '0001': 'maxianglin', '0002': 'wanglili', '0003': 'malinlin'} userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} userDic['0004']='zhangfang' #新增一個新值 print userDic userDic['0002']='yangrui' # 修改鍵為0002的值 print userDic # 輸出: #{'0004': 'zhangfang', '0001': 'maxianglin', '0002': 'wanglili', '0003': 'malinlin'} #{'0004': 'zhangfang', '0001': 'maxianglin', '0002': 'yangrui', '0003': 'malinlin'} # 2.2刪除字典中原有的元素 # a)使用del()方法刪除字典中的元素 del(dictionary_name[key]) # b)使用pop()方法刪除字典中的元素 pop(key,[,default_value]) # c)使用del保留子刪除字典中的元素 del dictionary_name[key] userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} del(userDic['0002']) print userDic userDic2={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} print userDic2.pop('0002') print userDic2 userDic3={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} del userDic3['0002'] print userDic3 # 輸出: #{'0001': 'maxianglin', '0003': 'malinlin'} #wanglili #{'0001': 'maxianglin', '0003': 'malinlin'} #{'0001': 'maxianglin', '0003': 'malinlin'} # 2.3字典的遍歷 # a)使用for...in迴圈便利字典 # b)使用items()方法便利字典 # c)使用iteritems(),iterkeys(),itervalues()方法遍歷字典 userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} for key in userDic: print 'userDic[%s]=' % key,userDic[key] print userDic.items() for (key,value) in userDic.items(): print 'userDic[%s]=' % key,value for (key,value) in userDic.iteritems(): print 'userDic[%s]=' % key,value for key in userDic.iterkeys(): print key for value in userDic.itervalues(): print value for (key,value) in zip(userDic.iterkeys(),userDic.itervalues()): print 'userDic[%s]=' % key,value # 輸出: ''' userDic[0001]= maxianglin userDic[0002]= wanglili userDic[0003]= malinlin [('0001', 'maxianglin'), ('0002', 'wanglili'), ('0003', 'malinlin')] userDic[0001]= maxianglin userDic[0002]= wanglili userDic[0003]= malinlin userDic[0001]= maxianglin userDic[0002]= wanglili userDic[0003]= malinlin 0001 0002 0003 maxianglin wanglili malinlin userDic[0001]= maxianglin userDic[0002]= wanglili userDic[0003]= malinlin ''' # 3字典的方法 # a)clear()方法用於清除字典所有的項,無返回值;dictionary_name.clear() userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} print 'orginal:',userDic userDic.clear() print 'changed:',userDic ''' 輸出: orginal: {'0001': 'maxianglin', '0002': 'wanglili', '0003': 'malinlin'} changed: {} ''' # b)copy()方法返回一個具有相同鍵-值對的新字典;dictionary_targetName=dictionary_sourceName.copy() source_userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} target_userDic=source_userDic.copy() print 'source:',source_userDic print 'target:',target_userDic ''' 輸出: source: {'0001': 'maxianglin', '0002': 'wanglili', '0003': 'malinlin'} target: {'0001': 'maxianglin', '0002': 'wanglili', '0003': 'malinlin'} ''' # c)fromkeys()方法使用給定的鍵來建立新的字典,每個鍵預設對應的值為None;dictionary_name.formkeys([key1,key2,...],(default_value)) print {}.fromkeys(['0001','0002']) source_userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} print source_userDic.fromkeys(['0001','0002']) print source_userDic.fromkeys(['0001','0002'],'maxianglin') # 輸出: #{'0001': None, '0002': None} #{'0001': None, '0002': None} #{'0001': 'maxianglin', '0002': 'maxianglin'} # d)get()方法用於訪問字典中的某個元素,返回該元素的value值。如果訪問的字典元素不存在,則返回None.dictionary_name.get(key) userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} print userDic.get('0002') print userDic.get('0004') # 反回None # print userDic['0004'] 會報錯~! ''' 輸出: wanglili None ''' # e)has_key()方法可以檢查字典中是否含有指定的鍵,如果有,返回True,否則返回False;dictionary_name.has_key(key) userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} print userDic.has_key('0004') print userDic.has_key('0002') ''' 輸出: False True ''' # f)popitem()方法類似列表中的pop()方法,但是popitem()方法彈出隨機的元素;dictionary_name.popitem() userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} print userDic.popitem() print userDic.popitem() print userDic ''' 輸出: ('0001', 'maxianglin') ('0002', 'wanglili') {'0003': 'malinlin'} ''' # g)update()方法可以利用一個字典項更新另外一個字典,無返回值;update_dictionary.update(source_dictionary) userDic={'0001':'maxianglin','0002':'wanglili','0003':'malinlin'} newDic={'0002':'zhangfang'} userDic.update(newDic) print userDic # 輸出:{'0001': 'maxianglin', '0002': 'zhangfang', '0003': 'malinlin'}