字典 dict
特點:key-value鍵值對的資料的集合
可變的、無序的、key不重複;非線性結構;
字典的初始化
d=dict() 或者 d =
dict(**kwargs) 使用name=value對初始化乙個字典;
dict(iterable,**kwarg) 使用可迭代物件和name=value對構造字典,不可迭代物件的元素必須是乙個二元結構;
類方法dict.formkeys(iterable,value)
字典元素的訪問
d[key] 返回key對應的值value,key不存在則丟擲keyerror;
get(key[,default]} 返回key對應的值value,key不存在返回預設值,如果沒有設定預設值就返回none;
setdefault(key[,default]) 返回key對應的值value,key不存在,新增kv對,value為default,並返回default,如果default沒有設定,預設為none;
字典的增加、修改
d[key] =value 增加、修改 key存在則覆蓋,key不存在則建立
update([other]) ---> none
使用另乙個欄位的kv對更新本欄位,key不存在則新增,key存在,覆蓋已經存在的key對應的值;就地修改;
在set集合中元素的值是唯一的,在字典中key是唯一的,key的順序是無序的;
字典的刪除
pop(key,[default]) key存在,則移除,並返回它的value;key不存在,返回給定的default;default未設定,key不存在則丟擲keyerror異常;
popitem() 移除並返回任意鍵值對,字典為empty,丟擲keyerror;
clear() 清空字典;
del語句
字典的遍歷
1、遍歷key
遍歷value
遍歷items也就是kv對
總結:
python3中,keys、values、items方法返回乙個類似於乙個生成器的可迭代物件,不會把函式的返回結果複製到記憶體中,本質上是乙個字典的view物件,省記憶體;
移除
應用示例:
字典和set主要是使用key,如果想遍歷value,則使用list最好;
預設字典 defaultdict
collections.defaultdict([default_factory[,...]])
第乙個引數是default_factory,預設是none,它提供乙個初始化函式,當key不存在的時候,會呼叫這個工廠函式來生成key對應的value;
有序字典 ordereddict
有序字典可以記錄元素的插入順序,列印的時候也是按照這個順序輸出列印;
3.6版本的python的字典就是記錄key插入的順序(ipython不一定有效果)
應用場景:
1、假如使用字典記錄了n個產品,這些產品使用id由小到大加入字典中;
2、除了使用字典檢索的遍歷,有時候需要取出id,但是希望是按照輸入的順序,因為輸入順序是有序的;
示例:字典練習
統計元素個數
a ={}b = '
abcdefbbcc
'for i in
b: a[i] = a.get(i,0) + 1 #當變數i的值在a字典中不存在時,返回預設值0,並且加1賦值給a[i],寫入字典,依次迴圈,當存在時,在原來的value基礎上加1,賦值給a[i];
(a)執行結果:
python3字典遍歷 python3字典遍歷
python版本 python3.7 info infog.get name 得到字典info中name的值 info.keys 得到字典info中所有的鍵,結果是乙個物件 dict keys name age 需要注意在python2中該操作得到的是乙個列表 遍歷key for temp in i...
python3字典排序
說實話,對字典進行排序,這個說法本身就有問題,實際上,你無法對操縱字典說,字典,在你的底層實現裡,你就得按照我指定的順序來排列,如果這樣的話,字典就喪失了它的速度優勢,它也不是乙個字典了.好了,廢話不多說,我這裡稍微記錄一下我的做法吧.python2裡面原來是有dict.iteritems這樣乙個函...
python3 字典操作
dictionary 字典 裝下整個世界 字典是python中的唯一的對映型別,採用鍵值對的形式儲存資料 key value python對key進行雜湊函式運算,根據計算結果決定value儲存的位址,所以字典是無序儲存的,且key必須是可雜湊的。可雜湊表示key必須是不可變型別,如 數字 字串 元...