詳解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的更多內容!

推薦閱讀: