day5 字典的基本操作

2022-08-31 16:36:32 字數 3309 閱讀 6491

字典是python中唯一的對映型別,採用鍵值對(key-value)的形式儲存資料。python對key進行雜湊函式運算,根據計算的結果決定value的儲存位址,所以字典是無序儲存的,且key必須是可雜湊的。可雜湊表示key必須是不可變型別,如:數字、字串、元組。

字典(dictionary)是除列表意外python之中最靈活的內建資料結構型別。列表是有序的物件結合,字典是無序的物件集合。兩者之間的區別在於:字典當中的元素是通過鍵來訪問的,而不是通過索引訪問

1增:setdefault

dict = 

dict[

'job

'] = 'it'

#有就覆蓋,沒有就新增

print(dict)#

#setdefault 在字典中新增鍵值對,如果只有鍵那對應的值是none,但是如果原字典中存在設定的鍵值對,則他不會更改或者覆蓋。

dict.setdefault('

hometown

','xingtai')

print(dict)#

dict.setdefault('

name

','gaoliang')

print(dict)#

2、刪:pop,popitem,clear,del

dict = 

s = dict.pop('

age')#

返回刪除的value

s2 = dict.pop('

hobby

','沒有返回no

')#若刪除的鍵不存在,可以返回新增的任何資訊,沒有資訊就報錯

print

(dict)

print

(s)print(s2)

dict.clear()#清空列表

dict = 

s1 = dict.popitem()#

隨機刪除字典中的某個鍵值對,將刪除的鍵值對以元祖的形式返回

print(s1)#

('hometown', 'xingtai')

print(dict)#

del dict['

name

']#無返回值

del dict#

刪除整個字典

3、改:update

dict = 

dic =

dict[

'name

'] = '

gaoliang'#

有則覆蓋沒有就新增

print(dict)#

dic =

dict.update(dic)

#兩個字典的更新,將dic裡面的所有鍵值對,覆蓋新增到dict中,dic不變

print(dict)#

print(dic)#

4、查:get;for迴圈,dict.keys--dict.values--dict.items

dict = 

print(dict['

name

'])#

wangjifei#key值查詢

print(dict.get('

age'))#

27 #內建函式查詢,找到返回value。沒有key就返回none

print(dict.get('

hobby

','沒有此鍵

'))#

沒有此鍵 #key在字典裡就返回對應的value,沒有就返回新增的內容,沒有新增內容就返回none

dict = 

print

(dict.keys(),type(dict.keys()))

print

(dict.values(),type(dict.values()))

print(dict.items(),type(dict.items()))

dict_keys(['name', 'age', 'hometown'])

dict_values(['wangjifei', 27, 'xingtai'])

dict_items([('name', 'wangjifei'), ('age', 27), ('hometown', 'xingtai')])

for迴圈遍歷查詢字典:

第一種:

dict = 

for i,v in

dict.items():

print(i,v)

name wangjifei

age 27

hometown xingtai

第二種:

dict = 

for i in

dict:

print(i,dict[i])

name wangjifei

age 27

hometown xingtai

a,b = 1,3

print('a'

,a)print('b'

,b)a,b =b, a

print('a'

,a)print('

b',b)

a 1

b 3a 3

b 1

dict =,

'id2

': }

dict1 =dict.copy()

print

(dict)

print(dict1)

, 'id2': }

, 'id2': }

list = ['

s','

r','

t','

n','m'

]dict2 =dict.fromkeys(list)

dict3 = dict.fromkeys(list,50)

print

(dict2)

print(dict3)

fromkeys迭代新增字典鍵值對時,如果自定義的值是列表的話,其實開闢的是乙個記憶體位址,也就是說,接下來要在其中乙個key中新增元素,其他key中也會新增上,就會導致不想遇到的結果,看不懂就看例子吧

dict1 = dict.fromkeys('

abcdef

',)#

建立的字典自定義新增元素

print

(dict1)

dict1['a

在字典中key是'a'中的列表裡新增數字555,看結果

print(dict1)#結果意想不到吧

Day 5 字典以及字典的用法

拓展 li alex wusir taibai print join li 拼接的符號 join 可迭代物件 字典 dict 字典 用於存貯資料,存貯大量資料 優點 速度快 快於列表 能將資料之間關聯起來 定義乙個字典 dict 字典中逗號分割開的叫做乙個元素 1 鍵 10 值 鍵值對 字典的鍵 可...

python學習筆記day5 字典及字典操作

資料型別劃分 可變資料型別,不可變資料型別 不可變資料型別 元祖,bool,int,str,可哈西 可變資料型別 list,dict,set 不可哈西 dict的key 必須是不可變資料型別 dict的value 任意資料型別 dict優點 二分查詢,儲存大量關係型資料,dict特點 在3.5版本之...

Day9 字典操作

l字典dict 無序的 info 增 info e 5 改 info a 0 查 print info a 1 print info.get z none print z in info false python2.x info.has key z false 刪 del pop info.pop ...