詳解Python中的Dict
什么是dict?
dict全稱為dictionary
(字典),人如其名,像字典一樣可以根據(jù)索引定位到特定的文字。
在python的dict中,我們可以通過key來定位到特定的value。
如上圖,這就是dict的內(nèi)部結(jié)構(gòu)。key vs value 這樣的配對,key3再次套娃嵌套內(nèi)部取出來也是一個dict。
如此反復(fù),一個dict可以變得很多層次,但是特征還是key value一一配對,只是value能是普通類型也能是dict。
之前說了list是一連串的數(shù)據(jù),唯一找到元素的方式是通過下標逐個尋覓,從某種角度來看,list算是一個有下標為key的字典了。(當然嚴格來說list和dict是完全不同的兩種數(shù)據(jù)類型)。
說這么多,我們看看字典的代碼示例:
dict1 = dict() dict1['location'] = 'Guangdong' dict2 = {'name':'雷學(xué)委', 'langs':['Java', 'Scala', 'NodeJs', 'Python'] }
代碼中的dict1 和 dict2 這兩個都是字典。
我們下面看看dict的增刪查改
跟list類似,dict內(nèi)的元素說可以修改的(mutable)。
我們可以直接使用類似如下代碼,對特定鍵的值重新賦值。
dict['key1'] = new_value #對dict對象的key1鍵重新賦值。
下面我們直接看代碼,一遍過一下添加/刪除/更改元素以及清空字典的操作。
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/11/3 11:34 下午 # @Author : LeiXueWei # @CSDN/Juejin/Wechat: 雷學(xué)委 # @XueWeiTag: CodingDemo # @File : __init__.py.py # @Project : hello # 比如學(xué)委的信息作為一個字典 info_dict = dict() print('info_dict:', info_dict) # 添加元素到信息字典 info_dict['name'] = '雷學(xué)委' print('info_dict:', info_dict) # 更新為英文名 info_dict['name'] = 'LEI_XUE_WEI' # 或者改為 'levin' info_dict['blogs'] = '93' # 目前發(fā)表了93個博客文字。 info_dict['gongzhong_hao'] = '【雷學(xué)委】' # 歡迎過來關(guān)注支持 print('info_dict:', info_dict) print('gongzhong_hao:', info_dict['gongzhong_hao']) del info_dict['blogs'] # 刪除元素 print('info_dict:', info_dict) info_dict.clear() print('info_dict:', info_dict) # clear 清空元素后可以打印dict del info_dict # 直接刪除整個信息字典 # print('info_dict:', info_dict) 不能在打印了
效果如下:
特別指出,為了讓程序不會中斷,我們拿到一個陌生的dict通常會寫類似如下代碼:
#我們也經(jīng)常會用這種寫法,來獲取某個key的值,這樣程序不會被異常中斷 gongzhonghao = info_dict['gongzhong_hao'] if 'gongzhong_hao' in info_dict else 'N/A' print('gongzhong_hao:', gongzhonghao)
總結(jié)
dict使用起來很方便,非常輕松就根據(jù)某個key定位到值了。
我們開發(fā)中經(jīng)常用到這種結(jié)構(gòu),不管是Python/Java,幾乎所有開發(fā)都會用到字典類型。
所以python初學(xué)者務(wù)必把dict操作搞熟練,更多函數(shù)可以看dict的源碼
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python基于smtplib實現(xiàn)異步發(fā)送郵件服務(wù)
這篇文章主要介紹了Python基于smtplib實現(xiàn)異步發(fā)送郵件服務(wù),需要的朋友可以參考下2015-05-05解決ToPILImage時出現(xiàn)維度報錯問題pic should be 2/3 d
這篇文章主要介紹了解決ToPILImage時出現(xiàn)維度報錯問題pic should be 2/3 dimensional. Got 4 dimensions.具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02python3 json數(shù)據(jù)格式的轉(zhuǎn)換(dumps/loads的使用、dict to str/str to dict、j
JSON (JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于ECMAScript的一個子集。這篇文章主要介紹了python3 json數(shù)據(jù)格式的轉(zhuǎn)換(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互轉(zhuǎn)換) ,需要的朋友可以參考下2019-04-04