Python中的字典及其使用方法
前言:
本文的主要內(nèi)容是介紹Python中字典及其使用,包括使用字典(添加、刪除、修改等操作)、遍歷字典以及字典與列表之間的嵌套使用,文中附有代碼以及相應(yīng)的運(yùn)行結(jié)果輔助理解。
一、使用字典
在Python中,字典用放在花括號(hào){}中的一系列鍵值對(duì)表示,鍵和值之間用冒號(hào)分隔,而鍵值對(duì)之間用逗號(hào)分隔,每個(gè)鍵都與一個(gè)值相關(guān)聯(lián),你可以使用鍵來(lái)訪問(wèn)與之相關(guān)聯(lián)的值,與鍵相關(guān)聯(lián)的值可以是數(shù)字、字符串、列表乃至字典。事實(shí)上,可將任何Python對(duì)象用作字典中的值。
1.訪問(wèn)字典中的值
字典是由一系列鍵值對(duì)組成的,要訪問(wèn)字典中的值,就需要知道字典的名稱,想要訪問(wèn)的字典鍵名。
下面是一個(gè)訪問(wèn)字典中值的例子:
fruit = {'name': 'apple', 'color': 'red', 'num': 5} ?#有三個(gè)鍵值對(duì)的字典 print('name: ' + fruit['name']) #打印每個(gè)鍵所對(duì)應(yīng)的值 print('color: ' + fruit['color']) print('num: ' + str(fruit['num']))
運(yùn)行結(jié)果如下圖所示:
2.在字典中添加鍵值對(duì)
字典是一種動(dòng)態(tài)結(jié)構(gòu),可以添加鍵值對(duì),依次指定字典名、用方括號(hào)括起的鍵和相關(guān)聯(lián)的值即可完成添加。
下面是在字典中添加鍵值對(duì)的例子:
fruit = {} ?#創(chuàng)建一個(gè)空字典 print('1.fruit = ' + str(fruit)) fruit['name'] = 'apple' ?#依次添加鍵值對(duì) print('2.fruit = ' + str(fruit)) fruit['color'] = 'red' print('3.fruit = ' + str(fruit)) fruit['num'] = 5 print('4.fruit = ' + str(fruit))
運(yùn)行結(jié)果如下圖所示:
3.修改字典中的值
要修改字典中的值,可依次指定字典名、用方括號(hào)括起的鍵以及與該鍵相關(guān)聯(lián)的新值。
下面是修改字典中值的例子:
fruit = {'name': 'apple', 'color': 'red', 'num': 5} print('Before modify: fruit = ' + str(fruit)) fruit['color'] = 'green' #修改鍵名為'color'的值 fruit['num'] = 20 ?#修改鍵名為'num'的值 print('After modify: fruit = ' + str(fruit))
運(yùn)行結(jié)果如下圖所示:
4.刪除字典中的鍵值對(duì)
對(duì)于字典中需要?jiǎng)h除的鍵值對(duì),可使用del語(yǔ)句將相應(yīng)的鍵值對(duì)徹底刪除,使用del語(yǔ)句時(shí)需要指定字典名和要?jiǎng)h除的鍵。
下面是刪除字典中的鍵值對(duì)的例子:
fruit = {'name': 'apple', 'color': 'red', 'num': 5} print('Before delete: fruit = ' + str(fruit)) del fruit['color'] ?#刪除鍵名為'color'的鍵值對(duì) print('After delete: fruit = ' + str(fruit))
運(yùn)行結(jié)果如下圖所示:
5.由類似對(duì)象組成的字典
在前面的例子中,字典存儲(chǔ)的是一個(gè)對(duì)象的多種信息,當(dāng)然字典也可以存儲(chǔ)多個(gè)對(duì)象的同一種信息。
下面是由類似對(duì)象組成字典的例子:
favorite_fruit = { ? ? 'A': 'apple', ? ? 'B': 'orange', ? ? 'C': 'banana', } print("A's favorite fruit is " + favorite_fruit['A'] + ".") print("B's favorite fruit is " + favorite_fruit['B'] + ".") print("C's favorite fruit is " + favorite_fruit['C'] + ".")
運(yùn)行結(jié)果如下圖所示:
二、遍歷字典
1.遍歷字典中的所有鍵值對(duì)
遍歷字典中的所有鍵值對(duì)使用的主要語(yǔ)句如下:
or key, value in name.items()
——其中key,value可以自己指定,name是字典名。
下面是遍歷字典中的所有鍵值對(duì)的例子:
favorite_fruit = { ? ? 'A': 'apple', ? ? 'B': 'orange', ? ? 'C': 'banana', } for name, fruit in favorite_fruit.items(): ?#遍歷字典中的所有鍵值對(duì) ? ? print(name + "'s favorite fruit is " + fruit + ".")
運(yùn)行結(jié)果如下圖所示:
可以看到,運(yùn)行結(jié)果與三條print語(yǔ)句的輸出是相同的。
2.遍歷字典中的所有鍵
遍歷字典中的所有鍵使用的主要語(yǔ)句如下:
for key in name.keys()
——其中key可以自己指定,name是字典名。for key in name
——也可以省略.keys(),輸出是一樣的。for key in sorted(name.keys())
——按順序遍歷字典中所有的鍵。
下面是遍歷字典中的所有鍵的例子:
favorite_fruit = { ? ? 'B': 'apple', ? ? 'D': 'orange', ? ? 'C': 'banana', ? ? 'A': 'pear', } print('1. With .keys() output:') for name in favorite_fruit.keys(): ?#遍歷字典中所有的鍵 ? ? print(name) print('2. Without .keys() output:') ?#遍歷字典中所有的鍵——省略.keys() for name in favorite_fruit: ? ? print(name) ? print('3. sorted() output:') for name in sorted(favorite_fruit.keys()): ?#按順序遍歷字典中所有的鍵 ? ? print(name)
運(yùn)行結(jié)果如下圖所示:
由輸出結(jié)果可知,加入sorted()
函數(shù)后,鍵名果然是順序輸出的。
3.遍歷字典中的所有值
遍歷字典中的所有值使用的主要語(yǔ)句如下:
alue in name.values()
——其中value可以自己指定,name是字典名。for value in set(name.values())
——可以篩除掉value中的重復(fù)值。
下面是遍歷字典中的所有值的例子:
favorite_fruit = { ? ? 'B': 'apple', ? ? 'D': 'orange', ? ? 'C': 'banana', ? ? 'A': 'apple', } print('1. All values output:') for fruit in favorite_fruit.values(): ?#遍歷字典中所有的值 ? ? print(fruit) ? ?? print('2. With sorted() output:') for fruit in sorted(favorite_fruit.values()): ?#按順序遍歷字典中所有的值 ? ? print(fruit) ? ?? print('3. With set() output:') for fruit in set(favorite_fruit.values()): ?#剔除重復(fù)的值 ? ? print(fruit)
運(yùn)行結(jié)果如下圖所示:
由輸出結(jié)果可知,加入set()
函數(shù)后,輸出的值是無(wú)序的,這是正常的,輸出的值也確實(shí)沒(méi)有重復(fù)的。
三、嵌套
有時(shí)候需要將一系列字典存儲(chǔ)在列表中,或?qū)⒘斜碜鳛橹荡鎯?chǔ)在字典中,這樣的操作稱為嵌套,可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
1.字典列表
字典用于描述一個(gè)對(duì)象的多個(gè)特征,多個(gè)對(duì)象就需要多個(gè)字典,然后再把所有的字典存儲(chǔ)在一個(gè)列表里,我們遍歷列表即可遍歷所有的對(duì)象及其對(duì)應(yīng)的特征。
下面是字典列表的例子:
fruit_1 = {'name': 'apple', 'color': 'red', 'num': 15} fruit_2 = {'name': 'banana', 'color': 'yellow', 'num': 10} fruit_3 = {'name': 'watermelon', 'color': 'green', 'num': 20} fruits = [fruit_1, fruit_2, fruit_3] ?#將所有的字典存儲(chǔ)在列表里 for fruit in fruits: #遍歷列表 ? ? print(fruit)
運(yùn)行結(jié)果如下圖所示:
下面是相對(duì)復(fù)雜的一個(gè)應(yīng)用例子:
fruits = [] ?#創(chuàng)建一個(gè)空列表 for fruit_num in range(0,5):? ? ? new_fruit = {'name': 'apple', 'color': 'red', 'num': 10} ? ? fruits.append(new_fruit) print('Before modify:') for fruit in fruits: ?#遍歷列表 ? ? print(fruit) for fruit in fruits[:2]: ?#修改列表中前2個(gè)元素的字典屬性 ? ? if fruit['color'] == 'red': ? ? ? ? fruit['color'] = 'green' ? ? ? ? fruit['num'] = 20 print('After modify:') for fruit in fruits: ?#遍歷列表 ? ? print(fruit)
運(yùn)行結(jié)果如下圖所示:
2.在字典中嵌套列表
每當(dāng)需要在字典中將一個(gè)鍵關(guān)聯(lián)到多個(gè)值時(shí),都可以在字典中嵌套一個(gè)列表。
下面是在字典中嵌套列表例子:
favorite_fruit = { ? #在字典中嵌套列表 ? ? 'A': ['apple', 'mango'], ? ? 'B': ['orange'], ? ? 'C': ['banana', 'pear'], } for name, fruits in favorite_fruit.items(): ?#遍歷字典中的鍵值對(duì) ? ? if len(fruits) == 1: ?#列表的長(zhǎng)度為1 ? ? ? ? print(name+ "'s favorite fruits is :") ? ? ? ? for fruit in fruits: ?#遍歷字典中的列表 ? ? ? ? ? ? print("\t" + fruit) ? ? else: ?#列表的長(zhǎng)度大于1 ? ? ? ? print(name + "'s favorite fruits are :") ? ? ? ? for fruit in fruits: ? ? ? ? ? ? print("\t" + fruit)
運(yùn)行結(jié)果如下圖所示:
3.在字典中嵌套字典
有時(shí)候需要在字典中嵌套字典以更好的完成編程任務(wù),比如某個(gè)網(wǎng)站有多個(gè)用戶,每個(gè)用戶都有獨(dú)特的用戶名,可在字典中將用戶名作為鍵,然后將每位用戶的信息存儲(chǔ)在一個(gè)字典中,并將該字典作為與用戶名相關(guān)聯(lián)的值。
下面是在字典中嵌套字典例子:
users ={ ?#在字典中嵌套字典 ? ? 'user_1': { ? ? ? ? 'first_name': 'lebron', ? ? ? ? 'last_name': 'james', ? ? }, ? ? 'user_2': { ? ? ? ? 'first_name': 'kobe', ? ? ? ? 'last_name': 'bryant', ? ? }, ? ? 'user_3': { ? ? ? ? 'first_name': 'kevin', ? ? ? ? 'last_name': 'durant', ? ? }, } for user, userinfo in users.items(): ?#遍歷字典 ? ? print(user + "'s name is " + userinfo['first_name'].title() + ' ' + userinfo['last_name'].title()+'.')
運(yùn)行結(jié)果如下圖所示:
總結(jié):
以上就是Python中字典及其使用的所有內(nèi)容了,學(xué)會(huì)使用字典和遍歷字典是最基礎(chǔ)的操作,字典與列表的嵌套是重點(diǎn)也是難點(diǎn)所在,應(yīng)當(dāng)多加練習(xí)掌握其關(guān)鍵之處,以便在以后的編程中熟練運(yùn)用。
到此這篇關(guān)于Python中的字典及其使用方法的文章就介紹到這了,更多相關(guān)Python字典內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用lambda表達(dá)式對(duì)字典排序操作示例
這篇文章主要介紹了Python使用lambda表達(dá)式對(duì)字典排序操作,結(jié)合實(shí)例形式分析了lambda表達(dá)式實(shí)現(xiàn)字典按鍵排序、按值排序、多條件排序相關(guān)操作技巧,需要的朋友可以參考下2019-07-07python使用pil進(jìn)行圖像處理(等比例壓縮、裁剪)實(shí)例代碼
這篇文章主要介紹了python使用pil進(jìn)行圖像處理(等比例壓縮、裁剪)實(shí)例代碼,首先介紹了pil的相關(guān)內(nèi)容,然后分享了實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12關(guān)于Pytorch的MLP模塊實(shí)現(xiàn)方式
今天小編就為大家分享一篇關(guān)于Pytorch的MLP模塊實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python統(tǒng)計(jì)純文本文件中英文單詞出現(xiàn)個(gè)數(shù)的方法總結(jié)【測(cè)試可用】
這篇文章主要介紹了Python統(tǒng)計(jì)純文本文件中英文單詞出現(xiàn)個(gè)數(shù)的方法,結(jié)合實(shí)例形式總結(jié)分析了Python針對(duì)文本文件的讀取,以及統(tǒng)計(jì)文本文件中英文單詞個(gè)數(shù)的4種常用操作技巧,需要的朋友可以參考下2018-07-07Python中數(shù)字以及算數(shù)運(yùn)算符的相關(guān)使用
這篇文章主要介紹了Python中數(shù)字以及算數(shù)運(yùn)算符的相關(guān)使用,是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10利用Python/R語(yǔ)言分別解決金字塔數(shù)求和問(wèn)題
這篇文章將通過(guò)兩個(gè)小問(wèn)題:前N階乘求和問(wèn)題、金字塔數(shù)求和問(wèn)題,帶領(lǐng)大家深入淺出的理解兩種語(yǔ)言的基本語(yǔ)法,并用以實(shí)際場(chǎng)景,需要的可以參考一下2022-03-03正確理解Python中if __name__ == ''__main__''
今天小編就為大家分享一篇關(guān)于正確理解Python中if __name__ == '__main__' ,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01