Python中的字典及其使用方法
前言:
本文的主要內(nèi)容是介紹Python中字典及其使用,包括使用字典(添加、刪除、修改等操作)、遍歷字典以及字典與列表之間的嵌套使用,文中附有代碼以及相應(yīng)的運(yùn)行結(jié)果輔助理解。
一、使用字典
在Python中,字典用放在花括號{}中的一系列鍵值對表示,鍵和值之間用冒號分隔,而鍵值對之間用逗號分隔,每個鍵都與一個值相關(guān)聯(lián),你可以使用鍵來訪問與之相關(guān)聯(lián)的值,與鍵相關(guān)聯(lián)的值可以是數(shù)字、字符串、列表乃至字典。事實(shí)上,可將任何Python對象用作字典中的值。
1.訪問字典中的值
字典是由一系列鍵值對組成的,要訪問字典中的值,就需要知道字典的名稱,想要訪問的字典鍵名。
下面是一個訪問字典中值的例子:
fruit = {'name': 'apple', 'color': 'red', 'num': 5} ?#有三個鍵值對的字典 print('name: ' + fruit['name']) #打印每個鍵所對應(yīng)的值 print('color: ' + fruit['color']) print('num: ' + str(fruit['num']))
運(yùn)行結(jié)果如下圖所示:
2.在字典中添加鍵值對
字典是一種動態(tài)結(jié)構(gòu),可以添加鍵值對,依次指定字典名、用方括號括起的鍵和相關(guān)聯(lián)的值即可完成添加。
下面是在字典中添加鍵值對的例子:
fruit = {} ?#創(chuàng)建一個空字典 print('1.fruit = ' + str(fruit)) fruit['name'] = 'apple' ?#依次添加鍵值對 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.修改字典中的值
要修改字典中的值,可依次指定字典名、用方括號括起的鍵以及與該鍵相關(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.刪除字典中的鍵值對
對于字典中需要刪除的鍵值對,可使用del語句將相應(yīng)的鍵值對徹底刪除,使用del語句時需要指定字典名和要刪除的鍵。
下面是刪除字典中的鍵值對的例子:
fruit = {'name': 'apple', 'color': 'red', 'num': 5} print('Before delete: fruit = ' + str(fruit)) del fruit['color'] ?#刪除鍵名為'color'的鍵值對 print('After delete: fruit = ' + str(fruit))
運(yùn)行結(jié)果如下圖所示:
5.由類似對象組成的字典
在前面的例子中,字典存儲的是一個對象的多種信息,當(dāng)然字典也可以存儲多個對象的同一種信息。
下面是由類似對象組成字典的例子:
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.遍歷字典中的所有鍵值對
遍歷字典中的所有鍵值對使用的主要語句如下:
or key, value in name.items()
——其中key,value可以自己指定,name是字典名。
下面是遍歷字典中的所有鍵值對的例子:
favorite_fruit = { ? ? 'A': 'apple', ? ? 'B': 'orange', ? ? 'C': 'banana', } for name, fruit in favorite_fruit.items(): ?#遍歷字典中的所有鍵值對 ? ? print(name + "'s favorite fruit is " + fruit + ".")
運(yùn)行結(jié)果如下圖所示:
可以看到,運(yùn)行結(jié)果與三條print語句的輸出是相同的。
2.遍歷字典中的所有鍵
遍歷字典中的所有鍵使用的主要語句如下:
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.遍歷字典中的所有值
遍歷字典中的所有值使用的主要語句如下:
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ù)后,輸出的值是無序的,這是正常的,輸出的值也確實(shí)沒有重復(fù)的。
三、嵌套
有時候需要將一系列字典存儲在列表中,或?qū)⒘斜碜鳛橹荡鎯υ谧值渲?,這樣的操作稱為嵌套,可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
1.字典列表
字典用于描述一個對象的多個特征,多個對象就需要多個字典,然后再把所有的字典存儲在一個列表里,我們遍歷列表即可遍歷所有的對象及其對應(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] ?#將所有的字典存儲在列表里 for fruit in fruits: #遍歷列表 ? ? print(fruit)
運(yùn)行結(jié)果如下圖所示:
下面是相對復(fù)雜的一個應(yīng)用例子:
fruits = [] ?#創(chuàng)建一個空列表 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個元素的字典屬性 ? ? 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)需要在字典中將一個鍵關(guān)聯(lián)到多個值時,都可以在字典中嵌套一個列表。
下面是在字典中嵌套列表例子:
favorite_fruit = { ? #在字典中嵌套列表 ? ? 'A': ['apple', 'mango'], ? ? 'B': ['orange'], ? ? 'C': ['banana', 'pear'], } for name, fruits in favorite_fruit.items(): ?#遍歷字典中的鍵值對 ? ? if len(fruits) == 1: ?#列表的長度為1 ? ? ? ? print(name+ "'s favorite fruits is :") ? ? ? ? for fruit in fruits: ?#遍歷字典中的列表 ? ? ? ? ? ? print("\t" + fruit) ? ? else: ?#列表的長度大于1 ? ? ? ? print(name + "'s favorite fruits are :") ? ? ? ? for fruit in fruits: ? ? ? ? ? ? print("\t" + fruit)
運(yùn)行結(jié)果如下圖所示:
3.在字典中嵌套字典
有時候需要在字典中嵌套字典以更好的完成編程任務(wù),比如某個網(wǎng)站有多個用戶,每個用戶都有獨(dú)特的用戶名,可在字典中將用戶名作為鍵,然后將每位用戶的信息存儲在一個字典中,并將該字典作為與用戶名相關(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é)會使用字典和遍歷字典是最基礎(chǔ)的操作,字典與列表的嵌套是重點(diǎn)也是難點(diǎn)所在,應(yīng)當(dāng)多加練習(xí)掌握其關(guān)鍵之處,以便在以后的編程中熟練運(yùn)用。
到此這篇關(guān)于Python中的字典及其使用方法的文章就介紹到這了,更多相關(guān)Python字典內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用lambda表達(dá)式對字典排序操作示例
這篇文章主要介紹了Python使用lambda表達(dá)式對字典排序操作,結(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í)例代碼,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12關(guān)于Pytorch的MLP模塊實(shí)現(xiàn)方式
今天小編就為大家分享一篇關(guān)于Pytorch的MLP模塊實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python統(tǒng)計純文本文件中英文單詞出現(xiàn)個數(shù)的方法總結(jié)【測試可用】
這篇文章主要介紹了Python統(tǒng)計純文本文件中英文單詞出現(xiàn)個數(shù)的方法,結(jié)合實(shí)例形式總結(jié)分析了Python針對文本文件的讀取,以及統(tǒng)計文本文件中英文單詞個數(shù)的4種常用操作技巧,需要的朋友可以參考下2018-07-07Python中數(shù)字以及算數(shù)運(yùn)算符的相關(guān)使用
這篇文章主要介紹了Python中數(shù)字以及算數(shù)運(yùn)算符的相關(guān)使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-10-10正確理解Python中if __name__ == ''__main__''
今天小編就為大家分享一篇關(guān)于正確理解Python中if __name__ == '__main__' ,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01