詳解Python中的Dict
什麼是dict?
dict全稱為dictionary
(字典),人如其名,像字典一樣可以根據索引定位到特定的文字。
在python的dict中,我們可以通過key來定位到特定的value。
如上圖,這就是dict的內部結構。key vs value 這樣的配對,key3再次套娃嵌套內部取出來也是一個dict。
如此反復,一個dict可以變得很多層次,但是特征還是key value一一配對,隻是value能是普通類型也能是dict。
之前說瞭list是一連串的數據,唯一找到元素的方式是通過下標逐個尋覓,從某種角度來看,list算是一個有下標為key的字典瞭。(當然嚴格來說list和dict是完全不同的兩種數據類型)。
說這麼多,我們看看字典的代碼示例:
dict1 = dict() dict1['location'] = 'Guangdong' dict2 = {'name':'雷學委', 'langs':['Java', 'Scala', 'NodeJs', 'Python'] }
代碼中的dict1 和 dict2 這兩個都是字典。
我們下面看看dict的增刪查改
跟list類似,dict內的元素說可以修改的(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: 雷學委 # @XueWeiTag: CodingDemo # @File : __init__.py.py # @Project : hello # 比如學委的信息作為一個字典 info_dict = dict() print('info_dict:', info_dict) # 添加元素到信息字典 info_dict['name'] = '雷學委' print('info_dict:', info_dict) # 更新為英文名 info_dict['name'] = 'LEI_XUE_WEI' # 或者改為 'levin' info_dict['blogs'] = '93' # 目前發表瞭93個博客文字。 info_dict['gongzhong_hao'] = '【雷學委】' # 歡迎過來關註支持 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通常會寫類似如下代碼:
#我們也經常會用這種寫法,來獲取某個key的值,這樣程序不會被異常中斷 gongzhonghao = info_dict['gongzhong_hao'] if 'gongzhong_hao' in info_dict else 'N/A' print('gongzhong_hao:', gongzhonghao)
總結
dict使用起來很方便,非常輕松就根據某個key定位到值瞭。
我們開發中經常用到這種結構,不管是Python/Java,幾乎所有開發都會用到字典類型。
所以python初學者務必把dict操作搞熟練,更多函數可以看dict的源碼
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!