第三天python3 字典

2022-06-14 19:00:11 字數 2714 閱讀 9537

字典 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];

print

(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必須是不可變型別,如 數字 字串 元...