字典是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
')#若刪除的鍵不存在,可以返回新增的任何資訊,沒有資訊就報錯
(dict)
(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 =dict_keys(['name', 'age', 'hometown'])(dict.keys(),type(dict.keys()))
(dict.values(),type(dict.values()))
print(dict.items(),type(dict.items()))
》
dict_values(['wangjifei', 27, 'xingtai'])
dict_items([('name', 'wangjifei'), ('age', 27), ('hometown', 'xingtai')])
for迴圈遍歷查詢字典:
第一種:
dict =name wangjifeifor i,v in
dict.items():
print(i,v)
》
age 27
hometown xingtai
第二種:
dict =name wangjifeifor i in
dict:
print(i,dict[i])
》
age 27
hometown xingtai
a,b = 1,3a 1print('a'
,a)print('b'
,b)a,b =b, a
print('a'
,a)print('
b',b)
》
b 3a 3
b 1
dict =,, 'id2': }'id2
': }
dict1 =dict.copy()
(dict)
print(dict1)
》
, 'id2': }
list = ['s','
r','
t','
n','m'
]dict2 =dict.fromkeys(list)
dict3 = dict.fromkeys(list,50)
(dict2)
print(dict3)
》
fromkeys迭代新增字典鍵值對時,如果自定義的值是列表的話,其實開闢的是乙個記憶體位址,也就是說,接下來要在其中乙個key中新增元素,其他key中也會新增上,就會導致不想遇到的結果,看不懂就看例子吧
dict1 = dict.fromkeys('abcdef
',)#
建立的字典自定義新增元素
(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 ...