Python精講:python中字典的概念、特征、創(chuàng)建和刪除詳解
歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《python中字典的概念、特征、創(chuàng)建和刪除詳解》。本知識(shí)點(diǎn)主要內(nèi)容有:字典的概念、字典的主要特征、字典的創(chuàng)建、字典的刪除。
永久美國(guó)免備案虛擬主機(jī)1元1天,15元1月,100元1年,1000元永久
站長(zhǎng)在線旗下答案網(wǎng)站,全站所有題目,免費(fèi)查看答案和答案解析
歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)python知識(shí),本文學(xué)習(xí)的是《Python中字典的概念、特征、創(chuàng)建和刪除詳解》。本知識(shí)點(diǎn)主要內(nèi)容有:字典的概念、字典的主要特征、字典的創(chuàng)建、字典的刪除。
在前面的Python課程學(xué)習(xí)中,我們學(xué)到了序列中的列表和元組,今天開始講解序列的另一個(gè)常用數(shù)據(jù)結(jié)構(gòu)--字典。
1、字典的概念
字典(dictionary)是無(wú)序的、可變的、保存的內(nèi)容是以“鍵-值對(duì)”的形式存儲(chǔ)的序列。
我們?cè)趺慈ダ斫釶ython中的字典呢?我們讀小學(xué)的時(shí)候,都用過《新華字典》,在《新華字典》中通過拼音或者部首,我們可以快速的查到對(duì)應(yīng)的文字和解釋。其中,《新華字典》里的拼音或者部首相當(dāng)于Python中字典的鍵(key),而對(duì)應(yīng)的漢字和解釋相當(dāng)于Python中字典的值(value)。鍵是唯一的,而值可以有多個(gè)。鍵及其關(guān)聯(lián)的值稱為“鍵值對(duì)”。
2、字典的主要特征
字典的主要特征如下:
2.1、通過鍵而不是通過索引來(lái)讀取
字典有時(shí)也稱為關(guān)聯(lián)數(shù)組或者散列表(hash)。它是通過鍵將一系列的值聯(lián)系起來(lái)的,這樣就可以通過鍵從字典中獲取指定項(xiàng),但不能通過索引來(lái)獲取。
字典是無(wú)序的,各項(xiàng)是從左到右隨機(jī)排序的,即保存在字典中的項(xiàng)沒有特定的順序。這樣可以提高查找順序。
2.3、字典是可變的,并且可以任意嵌套
字典可以在原處增長(zhǎng)或者縮短(無(wú)須生成一份拷貝),并且它支持任意深度的嵌套(即它的值可以是列表或者其他的字典)。
2.4、字典中的鍵必須唯一
不允許同一個(gè)鍵出現(xiàn)兩次,如果出現(xiàn)兩次,則后一個(gè)值會(huì)被記住。
2.5、字典中的鍵必須不可變
字典中的鍵是不可變的,所以可以使用數(shù)字、字符串或者元組,但不能使用列表。
和列表、元組一樣,字典也有它自己的類型。在 Python 中,字典的數(shù)據(jù)類型為 dict
,通過 type()
函數(shù)即可查看:
a = {'A': 1, 'B': 2, 'C': 3} #a是一個(gè)字典類型
print(type(a))
運(yùn)行結(jié)果如下:
<class 'dict'>
>>>
3、字典的創(chuàng)建
我們?cè)诙x字典時(shí),每個(gè)元素都包含了兩部分:鍵(key)和值(value),并且在“鍵”和“值”之間使用英文冒號(hào)分隔,相鄰兩個(gè)元素使用英文逗號(hào)分離,所有的元素都放在一個(gè)大括號(hào)“{}”中,語(yǔ)法格式如下:
dictionary = {'key1':'value1', 'key2':'value2', ..., 'keyn':'valuen',}
其中,相關(guān)的參數(shù)值如下:
dictionary:表示字典名稱;
key1, key2, ..., keyn:表示元素的鍵,必須是唯一的,并且不可變,例如可以是字符串、數(shù)字或者元組;
value1, value2, ..., valuen:表示元素的值,可以是任何數(shù)據(jù)類型,不是必須唯一。
例如,某中學(xué)初三1班,M同學(xué)的語(yǔ)數(shù)英的成績(jī),用字典保存,代碼如下:
chengji = {'語(yǔ)文':'88','數(shù)學(xué)':'96','英語(yǔ)':'86'}
print(chengji)
運(yùn)行結(jié)果如下:
{'語(yǔ)文': '88', '數(shù)學(xué)': '96', '英語(yǔ)': '86'}
>>>
好了,簡(jiǎn)單的講解了一下字典的語(yǔ)法,下面站長(zhǎng)在線來(lái)給大家談?wù)剟?chuàng)建字典的8大方法:
3.1、創(chuàng)建空字典
字典和列表,元組一樣都是可以創(chuàng)建空值的序列。在Python中,創(chuàng)建空字典居然還有兩個(gè)方法:dictionary = {}
或者 dictionary = dict()
。
示例3.1.1:用dictionary = {}
方法創(chuàng)建空列表,輸出結(jié)果,并打印數(shù)據(jù)類型
dictionary = {}
print(dictionary)
print("dictionary的數(shù)據(jù)類型為:",type(dictionary))
運(yùn)行結(jié)果如下:
{}
dictionary的數(shù)據(jù)類型為: <class 'dict'>
>>>
示例3.1.2:用dictionary = dict()
方法創(chuàng)建空列表,輸出結(jié)果,并打印數(shù)據(jù)類型
dictionary = dict()
print(dictionary)
print("dictionary的數(shù)據(jù)類型為:",type(dictionary))
運(yùn)行結(jié)果如下:
{}
dictionary的數(shù)據(jù)類型為: <class 'dict'>
>>>
3.2、直接賦值創(chuàng)建字典
上面的,某中學(xué)初三1班,M同學(xué)的語(yǔ)數(shù)英的成績(jī),保存為字典就是直接賦值創(chuàng)建字典。
chengji = {'語(yǔ)文':'88','數(shù)學(xué)':'96','英語(yǔ)':'86'}
print(chengji)
運(yùn)行結(jié)果如下:
{'語(yǔ)文': '88', '數(shù)學(xué)': '96', '英語(yǔ)': '86'}
>>>
3.3、通過給定的“鍵值對(duì)”創(chuàng)建字典
語(yǔ)法格式如下:
dictionary = dict(key1=value1,key2=value2,...,keyn=valuen)
其中,相關(guān)參數(shù)如下:
dictionary:表示字典名稱;
key1, key2, ..., keyn:表示元素的鍵,必須是唯一的,并且不可變,例如可以是字符串、數(shù)字或者元組;
value1, value2, ..., valuen:表示元素的值,可以是任何數(shù)據(jù)類型,不是必須唯一。
示例3.3:
a = dict(A = 1, B = 2, C =3)
print(a)
運(yùn)行結(jié)果為:
{'A': 1, 'B': 2, 'C': 3}
>>>
3.4、通過二元組列表創(chuàng)建
定義一個(gè)二元組列表并且賦值,
list = [('A', 1), ('B', 2), ('C', 3)]
a = dict(list)
print(a)
運(yùn)行結(jié)果為:
{'A': 1, 'B': 2, 'C': 3}
>>>
3.5、通過映射函數(shù)創(chuàng)建字典
語(yǔ)法如下:
dictionary = dict(zip(list1,list2))
其中,相關(guān)參數(shù)說(shuō)明如下:
dictionary:表示字典名稱。
zip()函數(shù):用于將多個(gè)列表或元組對(duì)應(yīng)位置的元素組合為元組,并返回包含這些內(nèi)容的zip對(duì)象。如果想得到元組,可以將zip對(duì)象使用tuple()函數(shù)轉(zhuǎn)換為元組;如果想得到列表,則可以使用list()函數(shù)將其轉(zhuǎn)換為列表。
list1:表示一個(gè)列表,用于指定要生成字典的鍵。
list2:表示一個(gè)列表,用于指定要生成字典的值。如果list1和list2的長(zhǎng)度不同,則與最短的列表長(zhǎng)度相同。
示例3.5:某高校寢室住著4大美女,將他們的名字保存在一個(gè)列表中,相應(yīng)的年齡保存在另一個(gè)列表中,根據(jù)名字和年齡創(chuàng)建一個(gè)字典。
思路:在idle中,我們打開草稿文件000.py,先定義兩個(gè)均包含4個(gè)元素的列表,在應(yīng)用dict()函數(shù)和zip()函數(shù),將兩個(gè)列表轉(zhuǎn)化為對(duì)應(yīng)的字典,并輸出該字典。
name = ['美琳','夢(mèng)潔','雪麗','美蓮']
age = [18,19,19,18]
a = dict(zip(name,age))
print(a)
運(yùn)行結(jié)果為:
{'美琳': 18, '夢(mèng)潔': 19, '雪麗': 19, '美蓮': 18}
>>>
3.6、通過dict對(duì)象的fromkeys()方法創(chuàng)建字典。
Python 中,還可以使用 dict 字典類型提供的 fromkeys() 方法創(chuàng)建帶有默認(rèn)值的字典,具體格式為:
dictionary = dict.fromkeys(list,value=None)
其中,list 參數(shù)表示字典中所有鍵的列表(list);value 參數(shù)表示默認(rèn)值,如果不寫,則為空值 None。
kemu = ['語(yǔ)文', '數(shù)學(xué)', '英語(yǔ)'] #作為鍵的列表
a = dict.fromkeys(kemu, 100) #指定科目的默認(rèn)成績(jī)?yōu)?00
print(a)
運(yùn)行結(jié)果如下:
{'語(yǔ)文': 100, '數(shù)學(xué)': 100, '英語(yǔ)': 100}
>>>
3.7、通過字典推導(dǎo)式創(chuàng)建(字典的最后一個(gè)知識(shí)點(diǎn)再詳細(xì)講解字典推導(dǎo)式)
a = {i:2*i for i in range(3)}
print(a)
運(yùn)行結(jié)果如下:
{0: 0, 1: 2, 2: 4}
>>>
3.8、其他方法
list = ['A', 1, 'B', 2, 'C', 3]
a= dict(zip(list[::2], list[1::2]))
print(a)
運(yùn)行結(jié)果:
{'A': 1, 'B': 2, 'C': 3}
>>>
4、字典的刪除
同列表和元組一樣,不再需要的字典也可以使用del命令刪除。例如,通過下面的代碼即可將已經(jīng)定義的字典刪除。
del dictionary
另外,如果只是想刪除字典的全部元素,可以使用字典對(duì)象的clear()方法。執(zhí)行clear()方法后,原字典將變?yōu)榭兆值洹@?,下面的代碼將清除字典的全部元素。
dictionary.clear()
除了上面介紹的方法可以刪除字典元素,還可以使用字典對(duì)象的pop()刪除并返回指定“鍵”的元素,以及使用字典對(duì)象的popitem()方法刪除并返回字典中的一個(gè)元素。
到此為止,本文學(xué)習(xí)的是《Python中的元組推導(dǎo)式詳解》。本知識(shí)點(diǎn)主要內(nèi)容有:字典的概念、字典的主要特征、字典的創(chuàng)建、字典的刪除。
本文地址:http://003188.cn/pythonzidiandegainiantezhengchuangjianheshanchu.html
阿里云虛擬主機(jī)1G空間,120元一年
香港、美國(guó)虛擬主機(jī)100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡