字典創建(兩種方法)
dic = {'word':12,'hello':10,'key':0} #1直接創建
dic = {} #2創建空字典
a = (('word',12),('hello',10))
dic = dict(a) ##3將元組改爲dic
字典的增刪改查
1,增加(兩種方法)
dic['mother'] = 10 #1 -> 直接增加,若key存在則覆蓋原key,value
dic.update({'mother':10}) #2 -> 利用update增加
2,刪除(三種方法)
x = dic.pop('mother')
# 1 -> dic.pop(key) -> 返回value,同時刪除(key,value)
# x -> 12
del dic['mother']
# 2 -> del dic[key] -> 沒有返回值,直接刪除
dic.clear()
# 3 -> dic.clear() ->調用dic封裝的函數,清空dic
# 清空dic, dic={} dic在內存中還存在
# del dic 直接刪除dic對象
3 ,更改(同增加操作,有key直接覆蓋,沒有增加,update也試用)
4,查找(常見的操作)
dic.items() # 以元組形式返回dic中的鍵值對
dic.keys() # 返回dic中的key
dic.values() # 返回dic中的values
dic.get(key,0) # 獲取dic中key對應的value,若不存在該key, 返回 0
dic.setdefault(key,1) #獲取dic中key對應的value,若不存在該key,則 創建 dic[key]= 1
注意1:dic.items()是作爲一個可迭代對象返回的,不能用直接用x = dic.items()[0]這樣的方式獲取dic中的第一個(key,value),可以用下面這樣的方式來獲取。dic.keys(),dic.values()同理。
x = [x for x in dic.items()][0]
注意2::寫 for i in dic時,i不會返回鍵值對,默認i返回的是key。等價於 for key in dic.keys()。
應用實例:詞頻統計
corpus = ['hello','dear','my','name','is','foo','my','father','name','is','fuu',\
'my','mother','name','is','lyy']
dic = {}
for word in corpus: ##統計頻率
dic[word] = dic.get(word,0) + 1
dic_sort = sorted(dic.items(),key = lambda x:x[1],reverse = True) #排序->list
'''
# 上面內容等價於,只不過返回類型不同
dic = collections.Counter(corpus) '''
print(dic_sort[:5]) #輸出頻率最高的前5個的