python資料結構---字典(Dict)
阿新 • • 發佈:2019-01-14
基本操作方法:
d = {'age':18, 'name':'liu', 'sex':'male'} # 1.遍歷字典 for k in d: print k # 結果:age name sex for k in d.keys(): print k # 結果:age name sex for k in d.iterkeys(): print k # 結果:age name sex for v in d.values(): print v # 結果:18 liu male for v in d.itervalues(): print v # 結果:18 liu male for t in d.items(): print t # 結果:('age', 18) ('name', 'liu') ('sex', 'male') for t in d.iteritems(): print t # 結果:('age', 18) ('name', 'liu') ('sex', 'male') for k, v in d.items(): print k, v # 結果:k是鍵,v是值 for k, v in d.iteritems(): print k, v # 結果:k是鍵,v是值 print d.keys() # 結果:['age', 'name', 'sex'] print d.iterkeys() # 結果:從d的鍵中返回一個可迭代物件 print d.values() # 結果:[18, 'liu', 'male'] print d.itervalues() # 結果:從d的值中返回一個可迭代物件 print d.items() # 結果:[('age', 18), ('name', 'liu'), ('sex', 'male')] print d.iteritems() # 結果:<dictionary-itemiterator object at 0x0000000005564C78> # 2.增加 d = {'age':18, 'name':'liu', 'sex':'male'} # 1.list['key'] = vaule d["score"] = 88 print d # 結果:{'age': 18, 'score': 88, 'name': 'liu', 'sex': 'male'} d["score"] = 99 print d # 結果:{'age': 18, 'score': 99, 'name': 'liu', 'sex': 'male'} # 這種方法是通過字典的kye給字典新增元素,如果字典裡已存在該key的值,則會覆蓋,如果不存在,則會新增。 # 2.setdefault()方法: a = d.setdefault('age') print a, d # 結果:18 {'age': 18, 'name': 'liu', 'sex': 'male'} a = d.setdefault('height') print a, d # 結果:None {'age': 18, 'height': None, 'name': 'liu', 'sex': 'male'} a = d.setdefault('height', 175) print a, d # 結果:None {'age': 18, 'height': None, 'name': 'liu', 'sex': 'male'} a = d.setdefault('score',88) print a, d # 結果:88 {'age': 18, 'score': 88, 'name': 'liu', 'sex': 'male'} # 此方法是對字典進行增添元素,引數為(‘key’,‘value’) value預設為none。 # 如果字典沒有該key的時候,則會正常新增,返回一個值。預設None。 # 如果已經有了該key的時候,那麼將不進行操作(不會覆蓋原來的值)。 # 3.修改 d = {'age':18, 'name':'liu', 'sex':'male'} # 1.修改值:list['key'] = vaule d["age"]=25 print d # 結果:{'age': 25, 'name': 'liu', 'sex': 'male'} d["score"] = 88 print d # 結果:{'age': 25, 'score': 88, 'name': 'liu', 'sex': 'male'} # 如果字典裡已存在該key的值,則會修改,如果不存在,則會重新新增 # 2.修改鍵 d = {'age':18, 'name':'liu', 'sex':'male'} # 方法1 d["gender"] = d["sex"] d.pop("sex") print d # 結果:{'age': 18, 'name': 'liu', 'gender': 'male'} # 方法2 d["gender"] = d.pop("sex") print d # 結果:{'age': 18, 'name': 'liu', 'gender': 'male'} # 方法3 d.update(gender= d.pop("sex")) print d # 結果:{'age': 18, 'name': 'liu', 'gender': 'male'} # 3.update({key:value})方法:該方法是用來追加、拓展原字典元素。引數必須為一個字典。 d = {'age':18, 'name':'liu', 'sex':'male'} d.update({"age":25}) print d # 結果:{'age': 25, 'name': 'liu', 'sex': 'male'} d.update({"age":30, "score": 60}) print d # 結果:{'age': 30, 'score': 60, 'name': 'liu', 'sex': 'male'} # update()方法沒有返回值。 # D.update(D2) 將字典 D2 合併到D中,如果鍵相同,則此鍵的值取D2的值作為新值。 # 4.查詢 # 1.dic[key]:可以通過key來索引查詢字典的元素,如果查不到,則會報錯 d = {'age':18, 'name':'liu', 'sex':'male'} print d["age"] # 結果:18 print d["score"] # 結果:KeyError: 'score',報錯了 # 2.get(key)方法: d = {'age':18, 'name':'liu', 'sex':'male'} print d.get('name') # 結果:liu print d.get('addr') # 結果:None print d.get('addr','河南') # 結果:河南 # 5.刪除 # 1.pop(key)方法: d = {'age':18, 'name':'liu', 'sex':'male'} a = d.pop("sex") print a, d # 結果:male {'age': 18, 'name': 'liu'} a = d.pop('score') print a, d # 結果:KeyError: 'score',報錯了 a = d.pop('score',None) print a, d # 結果:None {'age': 18, 'name': 'liu'} # 推薦使用第三種。 # 2.popitem()方法: a = d.popitem() print a, d # 結果:('age', 18) {'name': 'liu', 'sex': 'male'} # 隨機刪除 有返回值 元組裡面是刪除鍵值,Python3.6是預設刪除最後一個。 # 3.clear()方法: d.clear() print d # 結果:{} # 4.del list[key]: del d['name'] print d # 結果:{'age': 18, 'sex': 'male'} del d['score'] print d # 結果:KeyError: 'score' # 刪除指定鍵值對,如果沒有會報錯。 del d print d # 結果:直接刪除字典,會報錯。