Python使用字典的嵌套功能詳解
當(dāng)需要存儲(chǔ)很多同類型的不通過(guò)數(shù)據(jù)時(shí)可能需要使用到嵌套,先用一個(gè)例子說(shuō)明嵌套的使用
1、在列表中存儲(chǔ)字典
student_1={'nationality':'China','colour':'yellow','age':'15'} student_2={'nationality':'America','colour':'white','age':'18'} student_3={'nationality':'Africa','colour':'dark','age':'17'} grade = [student_1,student_2,student_3] for student in grade: print(student)
輸出:
{‘nationality’: ‘China’, ‘age’: ‘15’, ‘colour’: ‘yellow’}
{‘nationality’: ‘America’, ‘age’: ‘18’, ‘colour’: ‘white’}
{‘nationality’: ‘Africa’, ‘age’: ‘17’, ‘colour’: ‘dark’}
注意,上邊的實(shí)例中就將字典作為列表的元素進(jìn)行了嵌套,然后利用列表進(jìn)行遍歷
下邊假設(shè)年級(jí)里有30個(gè)同樣年齡的中國(guó)學(xué)生,利用嵌套進(jìn)行生成
#定義一個(gè)存儲(chǔ)中國(guó)學(xué)生的列表,假設(shè)年齡都一樣 chinese=[] #創(chuàng)建30個(gè)中國(guó)學(xué)生 for student in range(0,30): student_1={'nationality':'China','colour':'yellow','age':'15'} chinese.append(student_1) #顯示一共創(chuàng)建了多少個(gè)學(xué)生 print('一共創(chuàng)建了:'+str(len(chinese))+'個(gè)學(xué)生') #顯示前5個(gè)中國(guó)學(xué)生 for stu in chinese[:5]: print(stu)
輸出:
{‘colour’: ‘yellow’, ‘age’: ‘15’, ‘nationality’: ‘China’}
{‘colour’: ‘yellow’, ‘age’: ‘15’, ‘nationality’: ‘China’}
{‘colour’: ‘yellow’, ‘age’: ‘15’, ‘nationality’: ‘China’}
{‘colour’: ‘yellow’, ‘age’: ‘15’, ‘nationality’: ‘China’}
{‘colour’: ‘yellow’, ‘age’: ‘15’, ‘nationality’: ‘China’}
可是這么多學(xué)生的年齡都相同,顯得不夠自然
#定義一個(gè)存儲(chǔ)中國(guó)學(xué)生的列表,假設(shè)年齡都一樣 chinese=[] #創(chuàng)建30個(gè)中國(guó)學(xué)生 for student in range(0,30): student_1={'nationality':'China','colour':'yellow','age':'15'} chinese.append(student_1) #顯示一共創(chuàng)建了多少個(gè)學(xué)生 print('一共創(chuàng)建了:'+str(len(chinese))+'個(gè)學(xué)生') for student_c in chinese[0:2]: if student_c['nationality']=='China': student_c['nationality']='America' student_c['colour']='white' student_c['age']=14 #顯示前5個(gè)中國(guó)學(xué)生 for stu in chinese[:5]: print(stu)
輸出:
一共創(chuàng)建了:30個(gè)學(xué)生
{‘colour’: ‘white’, ‘nationality’: ‘America’, ‘age’: 14}
{‘colour’: ‘white’, ‘nationality’: ‘America’, ‘age’: 14}
{‘colour’: ‘yellow’, ‘nationality’: ‘China’, ‘age’: ‘15’}
{‘colour’: ‘yellow’, ‘nationality’: ‘China’, ‘age’: ‘15’}
{‘colour’: ‘yellow’, ‘nationality’: ‘China’, ‘age’: ‘15’}
備注:學(xué)到這里發(fā)現(xiàn)列表和字典的知識(shí)有點(diǎn)薄弱啊
2、在字典中存儲(chǔ)列表
假設(shè)有個(gè)小店,里邊賣了2種粥,但是每種粥的配料都不一樣,利用一個(gè)字典記錄兩種粥及其配料
#為了簡(jiǎn)化就不把配料全寫(xiě)出來(lái)了 gruel={ '八寶粥':['大米','桂圓','紅棗','芡實(shí)','蓮子','薏仁','黑豆','核桃仁'], '瘦肉粥':['大米','瘦肉'] } for key,value in gruel.items(): print('\n'+key,end=':') for batching in value: print(batching, end=' ')
輸出:
八寶粥:大米 桂圓 紅棗 芡實(shí) 蓮子 薏仁 黑豆 核桃仁
瘦肉粥:大米 瘦肉
注意:
為了實(shí)現(xiàn)print()輸出不換行,這里增加了end參數(shù)
配料作為列表存儲(chǔ)在了字典里
3、在字典中嵌套字典
以班里有兩個(gè)同學(xué)為示例
grade={ '趙麗穎':{ '國(guó)籍':'中國(guó)', '民族':'漢', '出生日期':'1987年10月16日', '身高':'165cm', }, '楊冪':{ '國(guó)籍':'中國(guó)', '民族':'漢', '出生日期':'1986年9月12日', '身高':'166.5cm', } } for name,info in grade.items(): print(name) for key,value in info.items(): print(key+':'+value)
輸出:
楊冪
國(guó)籍:中國(guó)
民族:漢
出生日期:1986年9月12日
身高:166.5cm
趙麗穎
國(guó)籍:中國(guó)
民族:漢
出生日期:1987年10月16日
身高:165cm
這一節(jié)主要學(xué)習(xí)了字典的嵌套功能,主要學(xué)習(xí)了列表中嵌套字典、字典中嵌套列表、字典中嵌套字典的方式實(shí)現(xiàn)字典的復(fù)雜運(yùn)用
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
在Python中使用AOP實(shí)現(xiàn)Redis緩存示例
本篇文章主要介紹了在Python中使用AOP實(shí)現(xiàn)Redis緩存示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07python multiprocessing模塊用法及原理介紹
這篇文章主要介紹了python multiprocessing模塊用法及原理介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python實(shí)現(xiàn)的直接插入排序算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)的直接插入排序算法,結(jié)合實(shí)例形式分析了Python直接插入排序算法的定義與使用相關(guān)操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下2018-04-04Python編程中歸并排序算法的實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了Python編程中歸并排序算法的實(shí)現(xiàn)步驟詳解,歸并排序的平均時(shí)間復(fù)雜度為(n\log n),需要的朋友可以參考下2016-05-05python opencv角點(diǎn)檢測(cè)連線功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了python opencv角點(diǎn)檢測(cè)連線功能的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11使用python telnetlib批量備份交換機(jī)配置的方法
今天小編就為大家分享一篇使用python telnetlib批量備份交換機(jī)配置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07詳解numpy.ndarray.reshape()函數(shù)的參數(shù)問(wèn)題
這篇文章主要介紹了詳解numpy.ndarray.reshape()函數(shù)的參數(shù)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Python實(shí)現(xiàn)根據(jù)日期獲取當(dāng)天凌晨時(shí)間戳的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)根據(jù)日期獲取當(dāng)天凌晨時(shí)間戳的方法,涉及Python針對(duì)日期與時(shí)間戳的相關(guān)轉(zhuǎn)換、運(yùn)算等操作技巧,需要的朋友可以參考下2019-04-04