鍍金池/ 教程/ Python/ 一、字典(Dictionary)
二、Enum 的源碼
前言
一、Python 模塊簡(jiǎn)介
一、List(列表)
五、匿名函數(shù)
三、什么是元類
二、循環(huán)語句
二、模塊的使用
三、第一個(gè) Python 程序
線程與進(jìn)程
Python
三、條件語句和循環(huán)語句綜合實(shí)例
四、對(duì)象的描述器
三、類的屬性
一、迭代
五、迭代器和生成器綜合例子
六、運(yùn)算符相關(guān)的魔術(shù)方法
一、枚舉類的使用
前言
一、簡(jiǎn)明概述
二、Python 的基本數(shù)據(jù)類型
多線程編程
五、作用域
四、包
四、枚舉的比較
四、Python 中的變量
六、類的多態(tài)
一、Python 中類也是對(duì)象
一、Python 的 Magic Method
前言
四、生成器
一、面向?qū)ο蟮母拍?/span>
五、類的繼承
二、類
二、使用 <code>type()</code> 動(dòng)態(tài)創(chuàng)建類
進(jìn)程
二、set
三、主模塊和非主模塊
一、字典(Dictionary)
前言
前言
前言
前言
四、集成開發(fā)環(huán)境(IDE): PyCharm
前言
四、函數(shù)的參數(shù)
三、lsit 生成式(列表生成式)
四、自定義元類
四、類的方法
二、函數(shù)傳值問題
二、注釋
一、條件語句
一、Python 語法的簡(jiǎn)要說明
三、函數(shù)返回值
三、基本數(shù)據(jù)類型轉(zhuǎn)換
三、屬性的訪問控制
二、Python 的安裝
前言
三、命名規(guī)范
一、Python 自定義函數(shù)的基本步驟
三、自定義類型的枚舉
五、自定義容器(Container)
二、Python 迭代器
前言
二、tuple(元組)
一、Python 簡(jiǎn)介
前言
前言
前言
二、構(gòu)造(<code>__new__</code>)和初始化(<code>__init__</code>)
前言

一、字典(Dictionary)

經(jīng)過之前的學(xué)習(xí),我們可以知道 list 和 tuple 可以用來表示有序集合,之前我們那個(gè)例子是用 list 來存儲(chǔ)了用戶的昵稱

user=['liangdianshui','twowater','兩點(diǎn)水']

如果我們需要把用戶的賬號(hào)也記錄進(jìn)去呢?

用 list 可以這樣子解決:

user=[['liangdianshui','111111'],['twowater','222222'],['兩點(diǎn)水','333333']]

可是這樣表示也不方便,而且很難根據(jù)昵稱找到對(duì)應(yīng)的昵稱,且 list 越長(zhǎng),耗時(shí)越長(zhǎng);這時(shí)候就可以用 dict (字典)來表示了,Python 內(nèi)置了 字典(dict),dict 全稱dictionary,相當(dāng)于 JAVA 中的 map,使用鍵-值(key-value)存儲(chǔ),具有極快的查找速度。

user={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點(diǎn)水':'333333'}

1、dict (字典)的創(chuàng)建

字典是另一種可變?nèi)萜髂P?,且可存?chǔ)任意類型對(duì)象。

字典的每個(gè)鍵值(key=>value)對(duì)用冒號(hào)(:)分割,每個(gè)對(duì)之間用逗號(hào)(,)分割,整個(gè)字典包括在花括號(hào)({})中 ,格式如下所示:

dict = {key1 : value1, key2 : value2 }

注意:鍵必須是唯一的,但值則不必。值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的。

創(chuàng)建 dict(字典)實(shí)例:

dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點(diǎn)水':'333333'}
dict2={'abc':1234,1234:'abc'}

2、訪問 dict (字典)

#-*-coding:utf-8-*-
dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點(diǎn)水':'333333'}
print(dict1)

輸出的結(jié)果:

{'liangdianshui': '111111', 'twowater': '222222', '兩點(diǎn)水': '333333'}

這里需要注意的一點(diǎn)是:如果字典中沒有這個(gè)鍵,是會(huì)報(bào)錯(cuò)的。

3、修改 dict (字典)

向字典添加新內(nèi)容的方法是增加新的鍵/值對(duì),修改或刪除已有鍵/值對(duì)

#-*-coding:utf-8-*-
dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點(diǎn)水':'333333'}
print(dict1)
# 新增一個(gè)鍵值對(duì)
dict1['jack']='444444'
print(dict1)
# 修改鍵值對(duì)
dict1['liangdianshui']='555555'
print(dict1)

輸出的結(jié)果:

{'liangdianshui': '111111', 'twowater': '222222', '兩點(diǎn)水': '333333'}
{'liangdianshui': '111111', 'twowater': '222222', '兩點(diǎn)水': '333333', 'jack': '444444'}
{'liangdianshui': '555555', 'twowater': '222222', '兩點(diǎn)水': '333333', 'jack': '444444'}

4、刪除 dict (字典)

通過 del 可以刪除 dict (字典)中的某個(gè)元素,也能刪除 dict (字典)

通過調(diào)用 clear() 方法可以清除字典中的所有元素

#-*-coding:utf-8-*-
dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點(diǎn)水':'333333'}
print(dict1)
# 通過 key 值,刪除對(duì)應(yīng)的元素
del dict1['twowater']
print(dict1)
# 刪除字典中的所有元素
dict1.clear()
print(dict1)
# 刪除字典
del dict1

輸出的結(jié)果:

{'liangdianshui': '111111', 'twowater': '222222', '兩點(diǎn)水': '333333'}
{'liangdianshui': '111111', '兩點(diǎn)水': '333333'}
{}

5、 dict (字典)使用時(shí)注意的事項(xiàng)

(1) dict (字典)是不允許一個(gè)鍵創(chuàng)建兩次的,但是在創(chuàng)建 dict (字典)的時(shí)候如果出現(xiàn)了一個(gè)鍵值賦予了兩次,會(huì)以最后一次賦予的值為準(zhǔn)

例如:

#-*-coding:utf-8-*-
dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點(diǎn)水':'333333','twowater':'444444'}
print(dict1)
print(dict1['twowater'])

輸出的結(jié)果:

{'liangdianshui': '111111', 'twowater': '444444', '兩點(diǎn)水': '333333'}
444444

(2) dict (字典)鍵必須不可變,可是鍵可以用數(shù)字,字符串或元組充當(dāng),但是就是不能使用列表

例如:

#-*-coding:utf-8-*-
dict1={'liangdianshui':'111111' ,123:'222222' ,(123,'tom'):'333333','twowater':'444444'}
print(dict1)

輸出結(jié)果:

{'liangdianshui': '111111', 123: '222222', (123, 'tom'): '333333', 'twowater': '444444'}

(3) dict 內(nèi)部存放的順序和 key 放入的順序是沒有任何關(guān)系

和 list 比較,dict 有以下幾個(gè)特點(diǎn):

  • 查找和插入的速度極快,不會(huì)隨著key的增加而變慢

  • 需要占用大量的內(nèi)存,內(nèi)存浪費(fèi)多

而list相反:

  • 查找和插入的時(shí)間隨著元素的增加而增加

  • 占用空間小,浪費(fèi)內(nèi)存很少

6、dict (字典) 的函數(shù)和方法

方法和函數(shù) 描述
cmp(dict1, dict2) 比較兩個(gè)字典元素
len(dict) 計(jì)算字典元素個(gè)數(shù)
str(dict) 輸出字典可打印的字符串表示
type(variable) 返回輸入的變量類型,如果變量是字典就返回字典類型
dict.clear() 刪除字典內(nèi)所有元素
dict.copy() 返回一個(gè)字典的淺復(fù)制
dict.values() 以列表返回字典中的所有值
popitem() 隨機(jī)返回并刪除字典中的一對(duì)鍵和值
dict.items() 以列表返回可遍歷的(鍵, 值) 元組數(shù)組
上一篇:二、循環(huán)語句下一篇:前言