python字典操作和內置方法
阿新 • • 發佈:2018-09-18
def say 數據 覆蓋 word pytho 安全 date count
一 字典基本介紹
python中只有字典是映射結構,通過key取值,並且key是不可變數據類型,而value可以是任意數據類型。
字典通過一個花括號,裏面存放key:value的數據結構來定義。理論上講,字典是無限大的。
二 字典常用操作
1 按key取值
dic = {‘name‘:‘szz‘,‘age‘:18,‘sex‘:‘male‘) name = dic[‘name‘] print(name) # 輸出結果為 ‘szz‘
2 計算字典的長度
# len方法計算字典的長度 dic = {‘name‘:‘szz‘,‘age‘:18,‘sex‘:‘male‘) len_of_dic = len(dic)print(len_of_dic) # 輸出結果為 3
3 字典刪除操作
d={‘x‘:1,‘y‘:2,‘z‘:3} del d[‘y‘] print(d) # 輸出結果為 {‘x‘:1,‘z‘:3} res=d.pop(‘y‘) print(d) print(res) pop有返回值 res=d.popitem() print(res) # 輸出結果為 (‘z‘:3)
4 key,value的操作
# 得到字典中所有的鍵
d = {‘name‘:‘szz‘,‘age‘:18,‘sex‘:‘male) print(d.keys()) print(list(d.keys())) # 輸出結果為 (‘name‘,‘age‘,‘sex)# [‘name‘,‘age‘,‘sex‘]
# 得到字典中所有的值,用for循環取值 d={‘x‘:1,‘y‘:2,‘z‘:3} v = d.values() for i in v: print(i) # 輸出結果為 1 2 3
d = {‘name‘:‘szz‘,‘age‘:18,‘sex‘:‘male‘,‘x‘:1,‘y‘:2,‘z‘:3) for k,v in d.items(): print(k,v) # 輸出結果為 ‘name‘ ‘szz‘ ‘age‘ 18 ‘sex‘ male ‘x‘ 1 ‘y‘ 2 ‘z‘ 3
# 如果直接對字典進行for循環,則默認循環字典的key
5 get方法
d={‘name‘:‘szz‘,‘age‘:18,‘sex‘:‘male‘,‘hobbies‘:[1,2,3]} v=d.get(‘name‘) print(v) # 當不確定字典中是否存在某一個鍵值時,使用get方法更安全
6 update方法
# update 有新鍵值對的話會添加進字典,有相同的key則會覆蓋舊值 d={‘name‘:‘szz‘,‘age‘:18,‘sex‘:‘male‘,‘hobbies‘:[‘read‘,‘movie‘]} d1={‘age‘:22,‘addr‘:‘shanghai‘} d.update(d1) # 直接在d的基礎上改變
7 fromkeys
# 給定一個一直列表,用該列表中的值當做key初始化一個字典 keys=[‘name‘,‘age‘,‘sex‘] d={} for k in keys: d[k]=Noned={}.fromkeys(keys,None) print(d) # 輸出結果為 {‘name‘:None,‘age‘:None,‘sex‘:None}
8 setdefault
# key存在則修改,不存在則添加 d={"x":1,"y":2} res=d.setdefault(‘x‘,11111) # 在key存在的情況下不修改值,會返回原值print(d) print(res) # 輸出結果 {‘x‘:1,‘y‘:2} # 輸出結果 1 res=d.setdefault(‘z‘,11111) # 在key不存在的情況下會新增值,會返回新增# 的值 print(d) print(res) # 輸出結果 {‘x‘:1,‘y‘:2‘,‘z‘:11111) # 輸出結果 11111
9 setdefault使用場景
s=‘hello world world say hello hello‘ d={‘hello‘:4,‘word‘:2,‘say‘:1} d={} words=s.split() # print(words) for word in words: d[word]=words.count(word) d.setdefault(word,words.count(word)) print(d) # 輸出結果為 {‘hello‘:4,‘word‘:2,‘say‘:1}
python字典操作和內置方法