創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)專注于杭錦企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),電子商務(wù)商城網(wǎng)站建設(shè)。杭錦網(wǎng)站建設(shè)公司,為杭錦等地區(qū)提供建站服務(wù)。全流程按需搭建網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)python字典有哪些基本操作,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
字典也是 Python 提供的一種常用的數(shù)據(jù)結(jié)構(gòu),它用于存放具有映射關(guān)系的數(shù)據(jù)。
比如有份成績(jī)表數(shù)據(jù),語(yǔ)文:79,數(shù)學(xué):80,英語(yǔ):92,這組數(shù)據(jù)看上去像兩個(gè)列表,但這兩個(gè)列表的元素之間有一定的關(guān)聯(lián)關(guān)系。如果單純使用兩個(gè)列表來(lái)保存這組數(shù)據(jù),則無(wú)法記錄兩組數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系。
為了保存具有映射關(guān)系的數(shù)據(jù),Python 提供了字典,字典相當(dāng)于保存了兩組數(shù)據(jù),其中一組數(shù)據(jù)是關(guān)鍵數(shù)據(jù),被稱為 key;另一組數(shù)據(jù)可通過 key 來(lái)訪問,被稱為 value。
由于字典中的 key 是非常關(guān)鍵的數(shù)據(jù),而且程序需要通過 key 來(lái)訪問 value,因此字典中的 key 不允許重復(fù)。
程序既可使用花括號(hào)語(yǔ)法來(lái)創(chuàng)建字典,也可使用 dict() 函數(shù)來(lái)創(chuàng)建字典。實(shí)際上,dict 是一種類型,它就是 Python 中的字典類型。
在使用花括號(hào)語(yǔ)法創(chuàng)建字典時(shí),花括號(hào)中應(yīng)包含多個(gè) key-value 對(duì),key 與 value 之間用英文冒號(hào)隔開;多個(gè) key-value 對(duì)之間用英文逗號(hào)隔開。
如下代碼示范了使用花括號(hào)語(yǔ)法創(chuàng)建字典:
scores = {'語(yǔ)文': 89, '數(shù)學(xué)': 92, '英語(yǔ)': 93} print(scores) # 空的花括號(hào)代表空的dict empty_dict = {} print(empty_dict) # 使用元組作為dict的key dict2 = {(20, 30):'good', 30:'bad'} print(dict2)
上面程序中第 1 行代碼創(chuàng)建了一個(gè)簡(jiǎn)單的 dict,該 dict 的 key 是字符串,value 是整數(shù);第 4 行代碼使用花括號(hào)創(chuàng)建了一個(gè)空的字典;第 7 行代碼創(chuàng)建的字典中第一個(gè) key 是元組,第二個(gè) key 是整數(shù)值,這都是合法的。
需要指出的是,元組可以作為 dict 的 key,但列表不能作為元組的 key。這是由于 dict 要求 key 必須是不可變類型,但 列表是可變類型,因此列表不能作為元組的 key。
在使用 dict() 函數(shù)創(chuàng)建字典時(shí),可以傳入多個(gè)列表或元組參數(shù)作為 key-value 對(duì),每個(gè)列表或元組將被當(dāng)成一個(gè) key-value 對(duì),因此這些列表或元組都只能包含兩個(gè)元素。例如如下代碼:
vegetables = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)] # 創(chuàng)建包含3組key-value對(duì)的字典 dict3 = dict(vegetables) print(dict3) # {'celery': 1.58, 'brocoli': 1.29, 'lettuce': 2.19} cars = [['BMW', 8.5], ['BENS', 8.3], ['AUDI', 7.9]] # 創(chuàng)建包含3組key-value對(duì)的字典 dict4 = dict(cars) print(dict4) # {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
如果不為 dict() 函數(shù)傳入任何參數(shù),則代表創(chuàng)建一個(gè)空的字典。例如如下代碼:
# 創(chuàng)建空的字典 dict5 = dict() print(dict5) # {}
還可通過為 dict 指定關(guān)鍵字參數(shù)創(chuàng)建字典,此時(shí)字典的 key 不允許使用表達(dá)式。例如如下代碼:
# 使用關(guān)鍵字參數(shù)來(lái)創(chuàng)建字典 dict6 = dict(spinach = 1.39, cabbage = 2.59) print(dict6) # {'spinach': 1.39, 'cabbage': 2.59}
上面粗體字代碼在創(chuàng)建字典時(shí),其 key 直接寫 spinach、cabbage,不需要將它們放在引號(hào)中。
字典的基本用法
對(duì)于初學(xué)者而言,應(yīng)牢記字典包含多個(gè) key-value 對(duì),而 key 是字典的關(guān)鍵數(shù)據(jù),因此程序?qū)ψ值涞牟僮鞫际腔?key 的。基本操作如下:
通過 key 訪問 value 。
通過 key 添加 key-value 對(duì)。
通過 key 刪除 key-value 對(duì)。
通過 key 修改 key-value 對(duì)。
通過 key 判斷指定 key-value 對(duì)是否存在。
通過 key 訪問 value 使用的也是方括號(hào)語(yǔ)法,就像前面介紹的列表和元組一樣,只是此時(shí)在方括號(hào)中放的是 key,而不是列表或元組中的索引。
如下代碼示范了通過 key 訪問 value:
scores = {'語(yǔ)文': 89} # 通過key訪問value print(scores['語(yǔ)文'])
如果要為 dict 添加 key-value 對(duì),只需為不存在的 key 賦值即可:
# 對(duì)不存在的key賦值,就是增加key-value對(duì) scores['數(shù)學(xué)'] = 93 scores[92] = 5.7 print(scores) # {'語(yǔ)文': 89, '數(shù)學(xué)': 93, 92: 5.7}
如果要?jiǎng)h除宇典中的 key-value 對(duì),則可使用 del 語(yǔ)句。例如如下代碼:
# 使用del語(yǔ)句刪除key-value對(duì) del scores['語(yǔ)文'] del scores['數(shù)學(xué)'] print(scores) # {92: 5.7}
如果對(duì) dict 中存在的 key-value 對(duì)賦值,新賦的 value 就會(huì)覆蓋原有的 value,這樣即可改變 dict 中的 key-value 對(duì)。例如如下代碼:
cars = {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9} # 對(duì)存在的key-value對(duì)賦值,改變key-value對(duì) cars['BENS'] = 4.3 cars['AUDI'] = 3.8 print(cars) # {'BMW': 8.5, 'BENS': 4.3, 'AUDI': 3.8}
如果要判斷字典是否包含指定的 key,則可以使用 in 或 not in 運(yùn)算符。需要指出的是,對(duì)于 dict 而言,in 或 not in 運(yùn)算符都是基于 key 來(lái)判斷的。例如如下代碼:
# 判斷cars是否包含名為'AUDI'的key print('AUDI' in cars) # True # 判斷cars是否包含名為'PORSCHE'的key print('PORSCHE' in cars) # False print('LAMBORGHINI' not in cars) # True
通過上面介紹可以看出,字典的 key 是它的關(guān)鍵。換個(gè)角度來(lái)看,字典的 key 就相當(dāng)于它的索引,只不過這些索引不一定是整數(shù)類型,字典的 key 可以是任意不可變類型。
可以這樣說(shuō),字典相當(dāng)于索引是任意不可變類型的列表:而列表則相當(dāng)于 key 只能是整數(shù)的字典。因此,如果程序中要使用的字典的 key 都是整數(shù)類型,則可考慮能否換成列表。
此外,還有一點(diǎn)需要指出,列表的索引總是從 0 開始、連續(xù)增大的;但字典的索引即使是整數(shù)類型,也不需要從 0 開始,而且不需要連續(xù)。因此,列表不允許對(duì)不存在的索引賦值:但字典則允許直接對(duì)不存在的 key 賦值,這樣就會(huì)為字典增加一個(gè) key-value 對(duì)。
上述就是小編為大家分享的python字典有哪些基本操作了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。