摘要:劉先生工程師已婚小三兒查無(wú)此人返回值輸出返回值查無(wú)此人用于清空字典。劉先生工程師已婚輸出劉先生工程師已婚劉先生工程師已婚還可以用循環(huán)遍歷這三個(gè)方法來(lái)分別獲得鍵值。
字典的表現(xiàn)形式為:{key:value},鍵和值之間用冒號(hào)分隔,每個(gè)鍵值對(duì)兒之間用逗號(hào)分隔,比如{‘name’:’超人’,’age’:500},要注意key的類型必須是不可變的類型,python對(duì)key進(jìn)行哈希函數(shù)運(yùn)算,根據(jù)計(jì)算結(jié)果決定value的存儲(chǔ)地址,所以字典是無(wú)序存儲(chǔ)的。字典的增刪改查如下:
增可以通過(guò)直接賦值的方式對(duì)字典進(jìn)行修改,當(dāng)指定的鍵不存在時(shí)則會(huì)在末尾增加一對(duì)兒鍵值
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} dic["age"] = 20 dic["lover"] = "小昭" print(dic) 輸出: {"name": "劉先生", "age": 20, "job": "工程師", "marr": "已婚", "lover": "小昭"}
還可以使用setdefaultv(key,value)方法來(lái)增加鍵值對(duì)兒
如果key存在則不錯(cuò)任何改動(dòng),如果key不存在,則會(huì)在末尾添加新的鍵值,并且如果不給定value的話默認(rèn)為None
一句話概括就是“有就不管他,沒有就增加”,這在循環(huán)中可以利用這一點(diǎn)
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} dic.setdefault("name","超人") dic.setdefault("lover","小姐姐") print(dic) 輸出: {"name": "劉先生", "age": "39", "job": "工程師", "marr": "已婚", "lover": "小姐姐"}刪: pop() clear del
pop 刪除指定的key對(duì)應(yīng)的value,并且返回刪除的value,如果key不存在則會(huì)報(bào)錯(cuò)。
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} res = dic.pop("name") print(dic,"返回值:",res) 輸出: {"age": "39", "job": "工程師", "marr": "已婚"} 返回值: 劉先生
在使用pop()時(shí)還可以增加一個(gè)參數(shù)來(lái)指定返回值,如果給定的key不存在則會(huì)返回給定的返回值.這種方式非常好用,可以防止key不存在時(shí)報(bào)錯(cuò),如果存在則刪除,不存在則返回指定的字符串。
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} res = dic.pop("小三兒","查無(wú)此人") print("返回值:",res) 輸出: 返回值: 查無(wú)此人
clear 用于清空字典。
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} dic.clear() print(dic) 輸出: {}
del 用于刪除指定的鍵值,如果只給出字典名字時(shí)則會(huì)刪除整個(gè)字典對(duì)象
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} del dic["name"] #del dic print(dic) 輸出: {"age": "39", "job": "工程師", "marr": "已婚"}改: 見“增” 查:
可以直接指定鍵來(lái)訪問(wèn)字典,有則返回對(duì)應(yīng)的值,沒有則報(bào)錯(cuò):
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} a = dic["name"] print(a) 輸出: 劉先生
可以通過(guò)字典的三個(gè)方法keys(),values(),items()分別查詢所有的鍵、值、鍵值對(duì)兒。
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} a = dic.keys() b = dic.values() c = dic.items() print("keys():",a) print("values():",b) print("items():",c) 輸出: keys(): dict_keys(["name", "age", "job", "marr"]) values(): dict_values(["劉先生", "39", "工程師", "已婚"]) items(): dict_items([("name", "劉先生"), ("age", "39"), ("job", "工程師"), ("marr", "已婚")])
還可以用for循環(huán)遍歷這三個(gè)方法來(lái)分別獲得鍵值。
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} for k in dic.keys(): print(k) 輸出: name age job marr
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} for v in dic.values(): print(v) 輸出: 劉先生 39 工程師 已婚
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} for k,v in dic.items(): print(k,v) 輸出: name 劉先生 age 39 job 工程師 marr 已婚字典的其他方法
len(dict)
計(jì)算字典元素個(gè)數(shù)。
str(dict)
把字典專戶為字符串,如:
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} a = str(dic) import re res = re.search(r"name",a) print(res) 輸出: <_sre.SRE_Match object; span=(2, 6), match="name"> 因?yàn)榘裠ic轉(zhuǎn)化為字符串并賦值給a,所以可以對(duì)a進(jìn)行正則匹配 而如果直接對(duì)dic進(jìn)行正則匹配則報(bào)錯(cuò),因?yàn)閐ic不是字符串類型。
copy()
返回一個(gè)字典的淺復(fù)制
dict.fromkeys(seq,"value")
以序列seq中的元素作為字典的鍵,value為初始值 創(chuàng)建字典,如果不給參數(shù)value的話則每個(gè)鍵對(duì)應(yīng)的值為Non,注意:這是一個(gè)“類方法”,所以使用時(shí)前面要加dict.
seq = ["a",1,"b"] a = dict.fromkeys(seq,"value") print(a) 輸出: {"a": "value", 1: "value", "b": "value"}
get(key, default=None)
返回指定鍵的值,如果鍵不存在則返回default值。
popitem()
刪除并返回字典的一個(gè)鍵值對(duì),如果字典為空則會(huì)報(bào)錯(cuò)。
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} res1 = dic.popitem() res2 = dic.popitem() res3 = dic.popitem() print(res1,res2,res3,dic) 輸出: ("marr", "已婚") ("job", "工程師") ("age", "39") {"name": "劉先生"}
update([other])
用鍵值對(duì)兒更新字典,如果鍵已經(jīng)存在則會(huì)替換對(duì)應(yīng)的值,參數(shù)為另外一個(gè)字典或者可迭代的鍵值對(duì)兒,比如:
dic = {"name":"劉先生","age":"39","job":"工程師","marr":"已婚"} it = ((i,i**2) for i in range(1,4)) dic.update(it) print(dic) 輸出: {"name": "劉先生", "age": "39", "job": "工程師", "marr": "已婚", 1: 1, 2: 4, 3: 9} 也可以用下面的方式指定鍵對(duì)應(yīng)的值,比如 dic.update(name = "李小姐",age = 22)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42561.html
摘要:這種數(shù)據(jù)結(jié)構(gòu)包含以下幾種常見的操作向關(guān)聯(lián)數(shù)組添加鍵值對(duì)從關(guān)聯(lián)數(shù)組內(nèi)刪除鍵值對(duì)修改關(guān)聯(lián)數(shù)組內(nèi)的鍵值對(duì)根據(jù)已知的鍵尋找值字典問(wèn)題是設(shè)計(jì)一種能夠具備關(guān)聯(lián)數(shù)組特性的數(shù)據(jù)結(jié)構(gòu)。 定義 Python中有一個(gè)叫作dictionary的對(duì)象類型,翻譯過(guò)來(lái)就是字典,用dict表示。 創(chuàng)建字典 創(chuàng)建空的字典 >>> mydict = {} >>> mydict {} >>> type(mydict) >...
摘要:準(zhǔn)備字典文件為了更加準(zhǔn)確的將失蹤地址中的省市縣三級(jí)單位提取出來(lái),最好能夠直接以省市縣區(qū)的名稱為字典,這樣通過(guò)分詞以上的詞都能準(zhǔn)確的切分出來(lái)。在網(wǎng)上搜索發(fā)現(xiàn),根據(jù)最新的國(guó)家統(tǒng)計(jì)區(qū)位碼之作的現(xiàn)成的字典文件,并沒有。 在失蹤兒童信息保存在本地之后,有一個(gè)字段是失蹤地點(diǎn),字段內(nèi)容通常比較詳細(xì),具體到了失蹤的街道或者村,我打算通過(guò)某種方法將失蹤地點(diǎn)中的省、市、縣/區(qū)三級(jí)地址提取出來(lái)。 確定分詞技...
摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個(gè)布爾值只有兩種值的數(shù)據(jù)類型可以通過(guò)內(nèi)置的函數(shù)查詢,例如還可以用來(lái)判斷和的區(qū)別在于不會(huì)認(rèn)為子類是一種父類類型。會(huì)認(rèn)為子類是一種父類類型?;竟δ苁沁M(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素。 ...
摘要:默認(rèn)為或者說(shuō),是以格式保存對(duì)象如果設(shè)置為或者,則以壓縮的二進(jìn)制格式保存對(duì)象。但是,要小心坑試圖增加一個(gè)坑就在這里當(dāng)試圖修改一個(gè)已有鍵的值時(shí)沒有報(bào)錯(cuò),但是并沒有修改成功。要填平這個(gè)坑,需要這樣做多一個(gè)參數(shù)沒有坑了還用循環(huán)一下 pickle pickle是標(biāo)準(zhǔn)庫(kù)中的一個(gè)模塊,在Python 2中還有一個(gè)cpickle,兩者的區(qū)別就是后者更快。所以,下面操作中,不管是用import pick...
摘要:一項(xiàng)目說(shuō)明項(xiàng)目簡(jiǎn)介本次實(shí)驗(yàn)通過(guò)使用實(shí)現(xiàn)一個(gè)弱口令掃描器開始,入門滲透測(cè)試技術(shù),實(shí)驗(yàn)涉及協(xié)議原理,庫(kù)的使用等知識(shí)點(diǎn)。找到密碼并不會(huì)終止程序,而是會(huì)繼續(xù)掃描其他主機(jī)的弱口令,直到所有的主機(jī)都掃描一遍。 showImg(https://segmentfault.com/img/bVz0PF); 一、項(xiàng)目說(shuō)明 1.1 項(xiàng)目簡(jiǎn)介 本次實(shí)驗(yàn)通過(guò)使用 Python 實(shí)現(xiàn)一個(gè) FTP 弱口令掃描器開始...
閱讀 505·2021-09-03 00:22
閱讀 1379·2021-08-03 14:03
閱讀 2097·2021-07-25 21:37
閱讀 657·2019-08-30 13:18
閱讀 1887·2019-08-29 16:19
閱讀 2693·2019-08-29 13:22
閱讀 1306·2019-08-29 12:16
閱讀 2594·2019-08-26 12:16