這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)python字典有哪些基本操作,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
為夾江等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及夾江網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站制作、夾江網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
字典也是 Python 提供的一種常用的數(shù)據(jù)結(jié)構(gòu),它用于存放具有映射關(guān)系的數(shù)據(jù)。
比如有份成績表數(shù)據(jù),語文:79,數(shù)學(xué):80,英語:92,這組數(shù)據(jù)看上去像兩個(gè)列表,但這兩個(gè)列表的元素之間有一定的關(guān)聯(lián)關(guān)系。如果單純使用兩個(gè)列表來保存這組數(shù)據(jù),則無法記錄兩組數(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 來訪問,被稱為 value。
由于字典中的 key 是非常關(guān)鍵的數(shù)據(jù),而且程序需要通過 key 來訪問 value,因此字典中的 key 不允許重復(fù)。
程序既可使用花括號語法來創(chuàng)建字典,也可使用 dict() 函數(shù)來創(chuàng)建字典。實(shí)際上,dict 是一種類型,它就是 Python 中的字典類型。
在使用花括號語法創(chuàng)建字典時(shí),花括號中應(yīng)包含多個(gè) key-value 對,key 與 value 之間用英文冒號隔開;多個(gè) key-value 對之間用英文逗號隔開。
如下代碼示范了使用花括號語法創(chuàng)建字典:
scores = {'語文': 89, '數(shù)學(xué)': 92, '英語': 93} print(scores) # 空的花括號代表空的dict empty_dict = {} print(empty_dict) # 使用元組作為dict的key dict2 = {(20, 30):'good', 30:'bad'} print(dict2)
上面程序中第 1 行代碼創(chuàng)建了一個(gè)簡單的 dict,該 dict 的 key 是字符串,value 是整數(shù);第 4 行代碼使用花括號創(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 對,每個(gè)列表或元組將被當(dāng)成一個(gè) key-value 對,因此這些列表或元組都只能包含兩個(gè)元素。例如如下代碼:
vegetables = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)] # 創(chuàng)建包含3組key-value對的字典 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對的字典 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ù)來創(chuàng)建字典 dict6 = dict(spinach = 1.39, cabbage = 2.59) print(dict6) # {'spinach': 1.39, 'cabbage': 2.59}
上面粗體字代碼在創(chuàng)建字典時(shí),其 key 直接寫 spinach、cabbage,不需要將它們放在引號中。
字典的基本用法
對于初學(xué)者而言,應(yīng)牢記字典包含多個(gè) key-value 對,而 key 是字典的關(guān)鍵數(shù)據(jù),因此程序?qū)ψ值涞牟僮鞫际腔?key 的?;静僮魅缦拢?/p>
通過 key 訪問 value 。
通過 key 添加 key-value 對。
通過 key 刪除 key-value 對。
通過 key 修改 key-value 對。
通過 key 判斷指定 key-value 對是否存在。
通過 key 訪問 value 使用的也是方括號語法,就像前面介紹的列表和元組一樣,只是此時(shí)在方括號中放的是 key,而不是列表或元組中的索引。
如下代碼示范了通過 key 訪問 value:
scores = {'語文': 89} # 通過key訪問value print(scores['語文'])
如果要為 dict 添加 key-value 對,只需為不存在的 key 賦值即可:
# 對不存在的key賦值,就是增加key-value對 scores['數(shù)學(xué)'] = 93 scores[92] = 5.7 print(scores) # {'語文': 89, '數(shù)學(xué)': 93, 92: 5.7}
如果要?jiǎng)h除宇典中的 key-value 對,則可使用 del 語句。例如如下代碼:
# 使用del語句刪除key-value對 del scores['語文'] del scores['數(shù)學(xué)'] print(scores) # {92: 5.7}
如果對 dict 中存在的 key-value 對賦值,新賦的 value 就會(huì)覆蓋原有的 value,這樣即可改變 dict 中的 key-value 對。例如如下代碼:
cars = {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9} # 對存在的key-value對賦值,改變key-value對 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)算符。需要指出的是,對于 dict 而言,in 或 not in 運(yùn)算符都是基于 key 來判斷的。例如如下代碼:
# 判斷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è)角度來看,字典的 key 就相當(dāng)于它的索引,只不過這些索引不一定是整數(shù)類型,字典的 key 可以是任意不可變類型。
可以這樣說,字典相當(dāng)于索引是任意不可變類型的列表:而列表則相當(dāng)于 key 只能是整數(shù)的字典。因此,如果程序中要使用的字典的 key 都是整數(shù)類型,則可考慮能否換成列表。
此外,還有一點(diǎn)需要指出,列表的索引總是從 0 開始、連續(xù)增大的;但字典的索引即使是整數(shù)類型,也不需要從 0 開始,而且不需要連續(xù)。因此,列表不允許對不存在的索引賦值:但字典則允許直接對不存在的 key 賦值,這樣就會(huì)為字典增加一個(gè) key-value 對。
上述就是小編為大家分享的python字典有哪些基本操作了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。