Python之dict字典
dict字典
- dict字典認(rèn)知
- 字典
- 訪問字典里面的成員
- 如何快速創(chuàng)建一個(gè)字典
- 訪問字典成員
- dict字典的修改
- 添加
- 注意:字典無序
- 修改字典
- 刪除字典中的數(shù)據(jù)
- 未完待續(xù).....
dict字典認(rèn)知
字典(dictionary) 是鍵值對(duì)形式的可變?nèi)萜?#xff0c;可存儲(chǔ)任意類型對(duì)象。而 列表(list) 是有序的對(duì)象結(jié)合,字典是無序的對(duì)象集合。何為有序?何為無序?有序即有 序列化結(jié)構(gòu) 的,而無序則相反,之前有介紹過序列化結(jié)構(gòu)(序列化結(jié)構(gòu):列表,字符串等),他們都有一個(gè)比較好理解的地方,就是 切片與索引 ( 何為切片?何為索引?),索引的好處就是我們?cè)谛枰骋惶囟ㄖ档那闆r下可以快速的得到該值。
用請(qǐng)求百度翻譯api作為例子(請(qǐng)求百度api需要token,token申請(qǐng)學(xué)習(xí)鏈接),隨便認(rèn)識(shí)一下字典:
下面是上面代碼的運(yùn)行結(jié)果:
這些數(shù)據(jù)里除“原始數(shù)據(jù)”哪里沒有處理過外,剩下的都是經(jīng)過處理的(為了直觀,我選擇將原始代碼輸出出來),可以清楚的看到翻譯結(jié)果是在
[{'dst': 'Zhong Li', 'src': '鐘離'}]這個(gè)list[ ] 列表里面的,那個(gè)我們是如何將其單獨(dú)輸出出來的,答案是索引,不過前面是字典部分,就先簡單介紹一下字典:
字典
字典(dictionary,dict)的每個(gè) 鍵值 (key=>value)對(duì)用冒號(hào)(:)分割,每個(gè)對(duì)之間用逗號(hào)(,)分割,整個(gè)字典包括在花括號(hào)({})中字典鍵的特性)不允許同一個(gè)鍵出現(xiàn)兩次。(key為鍵,value為對(duì)應(yīng)的值)
創(chuàng)建時(shí)如果同一個(gè)鍵被賦值兩次,前一個(gè)的值會(huì)被后一個(gè)覆蓋 2)值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的,如字符串,數(shù)字或元組。而因?yàn)榱斜硎强勺兊?#xff0c;所以鍵不能為列表聲明存在的數(shù)據(jù)集合。
字典與列表相比,最大的不同在于字典是無序的,其成員位置只是象征性的,在字典中我們需要通過鍵來訪問成員,而不能通過其位置來訪問成員。
訪問字典里面的成員
先簡單創(chuàng)建一個(gè)字典,口訣:
鍵在前,值在后,關(guān)系用冒號(hào),不同鍵間用逗號(hào),萬事萬物都在{ }
口訣并不好,我現(xiàn)編的,各位大佬請(qǐng)輕噴
#字典,鍵在前,值在后 #鍵名key : 鍵值 #如 'name': '芽衣' (name為鍵名,芽衣為鍵值) dict_1 = {'name': '芽衣', 'age': 18, 'sex': '女'}#一個(gè)簡單的字典 print(dict_1) # 輸出完整的字典 print(dict_1.keys()) # 以list列表形式,輸出所有鍵 print(dict_1.values()) # 以list列表形式,輸出所有值 print(dict_1.items()) # 以list列表形式,輸出所有鍵值對(duì)元組代碼運(yùn)行結(jié)果為:
''' {'name': '芽衣', 'age': 18, 'sex': '女'} dict_keys(['name', 'age', 'sex']) dict_values(['芽衣', 18, '女']) dict_items([('name', '芽衣'), ('age', 18), ('sex', '女')]) '''字典就是這樣的鍵值一一對(duì)應(yīng),相當(dāng)于一個(gè)班里每一個(gè)人都有特定的學(xué)號(hào),喊到那個(gè)人的學(xué)號(hào)或者名字的時(shí)候那個(gè)人就出來。當(dāng)然這樣可能不能很好的理解字典無序,再示例:
dict = {} dict[3]='數(shù)字1' dict['one'] = "1" dict[2] = "2" print(dict) # 輸出完整的字典 print(dict['one']) # 輸出鍵為'one' 的值 print(dict[2]) # 輸出鍵為 2 的值運(yùn)行結(jié)果為:
''' {3: '數(shù)字1', 'one': '1', 2: '2'} 1 2 '''注意:字典可以存儲(chǔ)任意類型對(duì)象!!!
如何快速創(chuàng)建一個(gè)字典
使用dict()函數(shù)創(chuàng)建字典:
dict函數(shù)作用:通過其他映射(比如其他字典)或者(鍵,值)對(duì)的序列建立字典。
dict函數(shù)雖然好用,但是(重點(diǎn)): 使用dict()函數(shù),dict值必須一一對(duì)應(yīng)。
使用dict()函數(shù),必須每個(gè)元組里的成比例。才能將元組轉(zhuǎn)成 key:value
使用fromkeys()函數(shù)創(chuàng)建字典:
''' 語法: dict.fromkeys(seq[, value])參數(shù): seq -- 字典鍵值列表。 value -- 可選參數(shù), 設(shè)置鍵序列(seq)的值。返回值: 該方法返回一個(gè)新字典。fromkeys() 函數(shù)用于創(chuàng)建一個(gè)新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對(duì)應(yīng)的初始值。 '''dict3 = dict.fromkeys(['name','age']) print(dict3)dict4 = dict.fromkeys(['name','age'],10) print(dict4)注意:fromkeys 方法只用來創(chuàng)建新字典,不負(fù)責(zé)保存。當(dāng)通過一個(gè)字典來調(diào)用 fromkeys 方法時(shí),如果需要后續(xù)使用一定記得給他復(fù)制給其他的變量。
訪問字典成員
如果要想獲取字典中某個(gè)鍵的值,可以通過訪問鍵的方式來顯示對(duì)應(yīng)的值。
''' dict_1 = {'name': '芽衣', 'age': 18, 'sex': '女'}#一個(gè)簡單的字典 print(dict_1) # 輸出完整的字典 print(dict_1.keys()) # 以list列表形式,輸出所有鍵 print(dict_1.values()) # 以list列表形式,輸出所有值 print(dict_1.items()) # 以list列表形式,輸出所有鍵值對(duì)元組 {'name': '芽衣', 'age': 18, 'sex': '女'} dict_keys(['name', 'age', 'sex']) dict_values(['芽衣', 18, '女']) dict_items([('name', '芽衣'), ('age', 18), ('sex', '女')]) '''get 獲取指定key 對(duì)應(yīng)的value,如果key不存在返回none——語法:字典名.get(key):
a = {'name': '芽衣', 'age': 18} print(a.get('age')) #結(jié)果為: 18setdefault(key)方法 (有此鍵則查,無則增):
di2 = {'name': '芽衣', 'age': 18} print(di2.setdefault('name'))#有此鍵則查 di2.setdefault('name1')#輸入鍵名,不輸入鍵值的話,鍵值會(huì)默認(rèn)為None類型 print(di2) ''' 結(jié)果為: 芽衣 {'name': '芽衣', 'age': 18, 'name1': None} '''當(dāng)然查詢的前提是存在,如果你鍵名本來就不存在,那么又怎么查詢,這個(gè)時(shí)候就會(huì)給我們報(bào)錯(cuò)了
dict_1 = {'name': '芽衣', 'age': 18, 'sex': '女'} print('不存在的鍵名:', dict_1['不存在'])報(bào)錯(cuò):
''' 發(fā)生異常: KeyError '不存在' '''dict字典的修改
添加
在python程序中字典的鍵是唯一的,但是值可以重復(fù)!
字典是一種動(dòng)態(tài)結(jié)構(gòu),可以隨時(shí)在其中添加“鍵值”對(duì)。首先指定字典名,然后用中括號(hào)將鍵括起來,最后寫明這個(gè)鍵的值。
dict = {'1': "a", "2": "b", "3": "c"} # 創(chuàng)建字典dict['4'] = 'd' # 添加字典1 dict['5'] = 'e' # 添加字典2print(dict) # 輸出字典dict中的值 print('鍵值:',dict['1'])注意:字典無序
“鍵值”對(duì)的排列順序與添加順序不同。因?yàn)閜ython不關(guān)心鍵值對(duì)的添加順序,而只關(guān)心鍵和值之間的關(guān)聯(lián)關(guān)系!!!
修改字典
首先指定字典名,然后使用中括號(hào)把要修改的鍵和新值對(duì)應(yīng)起來。
這和字典中添加數(shù)據(jù)好像一樣呢!其實(shí)可以很肯定的告訴大家,確實(shí)是完全一模一樣的,總結(jié):有這個(gè)鍵則修改,無則添加!
可以看到字典的數(shù)據(jù)已經(jīng)被修改了,當(dāng)然如果好奇為什么前面的print函數(shù)沒有被改變的話,可以去看一下我之前的文章,了解一下 順序結(jié)構(gòu)和邏輯結(jié)構(gòu) 的區(qū)別。
此外還可以用update 更新字典、將原字典和新字典整合,key(鍵名)重復(fù)的話則新的覆蓋老的!
dict={'鐘離':'往生堂堂主','神里凌華':'我老婆'} print(dict) #未修改的原始字典 dict['鐘離']='退休老人' print(dict) #修改后的字典 dict.update({'心海':'我老婆','鐘離':'沒有摩拉'})#注意數(shù)據(jù)類型 print(dict) ''' 輸出結(jié)果為: {'鐘離': '往生堂堂主', '神里凌華': '我老婆'} {'鐘離': '退休老人', '神里凌華': '我老婆'} {'鐘離': '沒有摩拉', '神里凌華': '我老婆', '心海': '我老婆'} '''刪除字典中的數(shù)據(jù)
在Python程序中,對(duì)于字典中不再需要的信息,可以使用del語句將相應(yīng)的“鍵值”對(duì)信息徹底刪除。
在使用del語句刪除字典中數(shù)據(jù)時(shí),必須指定字典名和要?jiǎng)h除的鍵。
上代碼:
可以看到名為鐘離的鍵已經(jīng)被刪除了。
那么如何清空一個(gè)字典內(nèi)所有數(shù)據(jù)?
一:clear 清空字典——用法:字典名.clear()
二:
未完待續(xù)…
總結(jié)
以上是生活随笔為你收集整理的Python之dict字典的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gnome3 底部 任务栏_如何在gno
- 下一篇: 一款开源的文件搜索神器,终于不用记 fi