詳解Python中的Dict
什么是dict?
dict全稱為dictionary
(字典),人如其名,像字典一樣可以根據(jù)索引定位到特定的文字。
在python的dict中,我們可以通過key來定位到特定的value。
如上圖,這就是dict的內(nèi)部結(jié)構(gòu)。key vs value 這樣的配對(duì),key3再次套娃嵌套內(nèi)部取出來也是一個(gè)dict。
如此反復(fù),一個(gè)dict可以變得很多層次,但是特征還是key value一一配對(duì),只是value能是普通類型也能是dict。
之前說了list是一連串的數(shù)據(jù),唯一找到元素的方式是通過下標(biāo)逐個(gè)尋覓,從某種角度來看,list算是一個(gè)有下標(biāo)為key的字典了。(當(dāng)然嚴(yán)格來說list和dict是完全不同的兩種數(shù)據(jù)類型)。
說這么多,我們看看字典的代碼示例:
dict1 = dict() dict1['location'] = 'Guangdong' dict2 = {'name':'雷學(xué)委', 'langs':['Java', 'Scala', 'NodeJs', 'Python'] }
代碼中的dict1 和 dict2 這兩個(gè)都是字典。
我們下面看看dict的增刪查改
跟list類似,dict內(nèi)的元素說可以修改的(mutable)。
我們可以直接使用類似如下代碼,對(duì)特定鍵的值重新賦值。
dict['key1'] = new_value #對(duì)dict對(duì)象的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é)委的信息作為一個(gè)字典 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個(gè)博客文字。 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 # 直接刪除整個(gè)信息字典 # print('info_dict:', info_dict) 不能在打印了
效果如下:
特別指出,為了讓程序不會(huì)中斷,我們拿到一個(gè)陌生的dict通常會(huì)寫類似如下代碼:
#我們也經(jīng)常會(huì)用這種寫法,來獲取某個(gè)key的值,這樣程序不會(huì)被異常中斷 gongzhonghao = info_dict['gongzhong_hao'] if 'gongzhong_hao' in info_dict else 'N/A' print('gongzhong_hao:', gongzhonghao)
總結(jié)
dict使用起來很方便,非常輕松就根據(jù)某個(gè)key定位到值了。
我們開發(fā)中經(jīng)常用到這種結(jié)構(gòu),不管是Python/Java,幾乎所有開發(fā)都會(huì)用到字典類型。
所以python初學(xué)者務(wù)必把dict操作搞熟練,更多函數(shù)可以看dict的源碼
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
opencv 獲取rtsp流媒體視頻的實(shí)現(xiàn)方法
這篇文章主要介紹了opencv 獲取rtsp流媒體視頻的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Python基于smtplib實(shí)現(xiàn)異步發(fā)送郵件服務(wù)
這篇文章主要介紹了Python基于smtplib實(shí)現(xiàn)異步發(fā)送郵件服務(wù),需要的朋友可以參考下2015-05-05解決ToPILImage時(shí)出現(xiàn)維度報(bào)錯(cuò)問題pic should be 2/3 d
這篇文章主要介紹了解決ToPILImage時(shí)出現(xiàn)維度報(bào)錯(cuò)問題pic should be 2/3 dimensional. Got 4 dimensions.具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02python計(jì)算圓周長(zhǎng)、面積、球體體積并畫出圓
這篇文章主要介紹了python計(jì)算圓周長(zhǎng)、面積、球體體積并畫出圓(python3+PyObject+Gtk實(shí)現(xiàn)界面聯(lián)動(dòng)),需要的朋友可以參考下2014-04-04python實(shí)現(xiàn)刪除列表中某個(gè)元素的3種方法
這篇文章主要介紹了python實(shí)現(xiàn)刪除列表中某個(gè)元素的3種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01python3 json數(shù)據(jù)格式的轉(zhuǎn)換(dumps/loads的使用、dict to str/str to dict、j
JSON (JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ECMAScript的一個(gè)子集。這篇文章主要介紹了python3 json數(shù)據(jù)格式的轉(zhuǎn)換(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互轉(zhuǎn)換) ,需要的朋友可以參考下2019-04-04如何用python獲取到照片拍攝時(shí)的詳細(xì)位置(附源碼)
其實(shí)我們平時(shí)拍攝的照片里,隱藏了大量的信息,下面這篇文章主要給大家介紹了關(guān)于如何用python獲取到照片拍攝時(shí)的詳細(xì)位置,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12詳解Python中數(shù)據(jù)的多種存儲(chǔ)形式
這篇文章主要介紹了Python中數(shù)據(jù)的多種存儲(chǔ)形式,主要有JSON?文件存儲(chǔ)、CSV?文件存儲(chǔ)、關(guān)系型數(shù)據(jù)庫存儲(chǔ)及非關(guān)系型數(shù)據(jù)庫存儲(chǔ),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05