亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python字典嵌套

系統(tǒng) 1912 0

文 | 猿天罡

前言

前兩篇文章,我們學(xué)習(xí)了Python字典的基本用法和遍歷字典的三種方式

為了讓小伙伴們不耗費(fèi)多余的注意力,我們舉的例子都盡可能的簡(jiǎn)單,不信你回去看看,字典鍵對(duì)應(yīng)的值都是基本數(shù)據(jù)類型(字符串、數(shù)字等)。

其實(shí),字典里鍵對(duì)應(yīng)的值可以很復(fù)雜。

我們可以在字典中存儲(chǔ)列表,在列表中存儲(chǔ)字典,在字典中存儲(chǔ)字典等等。

Python中幾乎所有的數(shù)據(jù)類型,都可以存進(jìn)字典里。

學(xué)習(xí)不是一日之功,需擺正心態(tài),持之以恒,希望小伙伴們對(duì)學(xué)習(xí)一門語言抱有基本的耐心。

下面我們來 開心地 學(xué)習(xí)吧。

1.在字典里存儲(chǔ)列表

1.1字典里不全是列表

筆者在大學(xué)的時(shí)候,需要學(xué)習(xí)四門基礎(chǔ)專業(yè)課。

            
               course 
              
                =
              
              
                [
              
              
                '數(shù)據(jù)結(jié)構(gòu)'
              
              
                ,
              
              
                '計(jì)算機(jī)網(wǎng)絡(luò)'
              
              
                ,
              
              
                '計(jì)算機(jī)組成原理'
              
              
                ,
              
              
                '操作系統(tǒng)'
              
              
                ]
              
            
          

如果我們聲明一個(gè)學(xué)生字典,則專業(yè)課列表應(yīng)該在其字典之中。

            
              student 
              
                =
              
              
                {
              
              
                'name'
              
              
                :
              
              
                'kelvin'
              
              
                ,
              
              
                'age'
              
              
                :
              
              
                18
              
              
                ,
              
              
                'course'
              
              
                :
              
              
                [
              
              
                '數(shù)據(jù)結(jié)構(gòu)'
              
              
                ,
              
              
                '計(jì)算機(jī)網(wǎng)絡(luò)'
              
              
                ,
              
              
                '計(jì)算機(jī)組成原理'
              
              
                ,
              
              
                '操作系統(tǒng)'
              
              
                ]
              
              
                }
              
            
          

注:也可以用雙引號(hào)包裹字符串(別的文章可不會(huì)提醒的這么詳細(xì))

這種情況下,要想訪問課程列表,和我們講的字典訪問方法一毛一樣(基礎(chǔ)挺重要的): student['course']

下面我們來打印這個(gè)學(xué)生的信息。

            
              
                # 概述學(xué)生基本信息
              
              
                print
              
              
                (
              
              
                '姓名:'
              
              
                ,
              
               student
              
                [
              
              
                'name'
              
              
                ]
              
              
                ,
              
              
                '年齡:'
              
              
                ,
              
               student
              
                [
              
              
                'age'
              
              
                ]
              
              
                )
              
              
                print
              
              
                (
              
              
                '課程信息如下:'
              
              
                )
              
              
                for
              
               course 
              
                in
              
               student
              
                [
              
              
                'course'
              
              
                ]
              
              
                :
              
              
                print
              
              
                (
              
              
                "\t"
              
              
                +
              
               course
              
                )
              
            
          

運(yùn)行結(jié)果如下:

Python字典嵌套_第1張圖片

說明(看得懂代碼可以跳過):

首先,我們創(chuàng)建了一個(gè)學(xué)生字典,字典里存儲(chǔ)了學(xué)生的姓名、年齡和課程信息。姓名和年齡都是基本數(shù)據(jù)類型(一個(gè)字符串另一個(gè)數(shù)字),課程是列表結(jié)構(gòu)。

然后,我們通過字典訪問方法 字典['鍵'] ,一下子就把姓名和年齡拿到并輸出了。

最后,我們通過 student['course'] 拿到了一個(gè)課程列表,但直接輸出格式太不好看了,所以我們對(duì)其進(jìn)行了遍歷,依次輸出學(xué)生要上的課程。

1.2字典里全是列表

還有一種字典里存列表的情況:鍵對(duì)應(yīng)的值全是列表。

遇到這種情況心里可以偷著樂,因?yàn)檠h(huán)遍歷的時(shí)候格式會(huì)很好看(后文會(huì)有解釋)。

學(xué)校老師需要每個(gè)學(xué)生的課程信息(因?yàn)橛械娜诉x課會(huì)不一樣)。

這個(gè)時(shí)候把學(xué)生姓名做鍵(實(shí)際情況下是用學(xué)號(hào),姓名會(huì)重復(fù)),以學(xué)生課程列表為值可以組成字典。

            
              courses 
              
                =
              
              
                {
              
              
                'kelvin'
              
              
                :
              
              
                [
              
              
                '數(shù)據(jù)結(jié)構(gòu)'
              
              
                ,
              
              
                '計(jì)算機(jī)網(wǎng)絡(luò)'
              
              
                ,
              
              
                '計(jì)算機(jī)組成原理'
              
              
                ,
              
              
                '操作系統(tǒng)'
              
              
                ]
              
              
                ,
              
              
                'vicky'
              
              
                :
              
              
                [
              
              
                'xx經(jīng)濟(jì)學(xué)'
              
              
                ,
              
              
                '西方經(jīng)濟(jì)學(xué)'
              
              
                ,
              
              
                '統(tǒng)計(jì)學(xué)'
              
              
                ,
              
              
                '發(fā)展經(jīng)濟(jì)學(xué)'
              
              
                ]
              
              
                }
              
            
          

我們把多個(gè)學(xué)生的課程表打印輸出。

            
              
                for
              
               name
              
                ,
              
               course 
              
                in
              
               courses
              
                .
              
              items
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              name 
              
                +
              
              
                '同學(xué)所學(xué)課程:'
              
              
                )
              
              
                for
              
               c 
              
                in
              
               course
              
                :
              
              
                print
              
              
                (
              
              
                "\t"
              
              
                +
              
               c
              
                )
              
            
          

因?yàn)槊總€(gè)鍵對(duì)應(yīng)的都是列表,所以需要再使用一個(gè) for 循環(huán)來遍歷學(xué)生課程列表。

解釋(看得懂代碼可以跳過):

首先,使用外層 for 循環(huán),依次將courses字典里的鍵和值分別賦值給變量 name course

然后, name 對(duì)應(yīng)的值是個(gè)簡(jiǎn)單的字符串,所以我們直接打印輸出了。

最后,遍歷 course 列表,格式化地打印學(xué)生所學(xué)課程。

再注:字典里不全是字典也可以用雙層循環(huán),只不過我們需要加個(gè)if判斷,如果值是列表才能進(jìn)入到內(nèi)層循環(huán)。

2.在字典里存儲(chǔ)字典

字典里存儲(chǔ)字典就很像俄羅斯套娃。

Python字典嵌套_第2張圖片

循環(huán)(打開)一層字典后,面對(duì)的還是字典,真是讓人驚喜又驚喜。

和在字典中存儲(chǔ)列表一樣,在字典里存儲(chǔ)字典也有兩種情況。

聰明的小伙伴已經(jīng)猜到了:在字典里不全是字典和在字典里全是字典。

看著讓人有點(diǎn)頭暈(建議看下前面的小標(biāo)題清醒一下)。

因?yàn)樵谧值淅锊蝗亲值浔容^簡(jiǎn)單(不理解的歡迎私信),所以我們重點(diǎn)講講在字典里全是字典的情況。

學(xué)校需要學(xué)生信息表(不是學(xué)生所上課程信息)。

如果要用字典來存儲(chǔ)的話,可以這樣。

            
              students 
              
                =
              
              
                {
              
              
                'kelvin'
              
              
                :
              
              
                {
              
              
                'age'
              
              
                :
              
              
                18
              
              
                ,
              
              
                'course'
              
              
                :
              
              
                [
              
              
                '數(shù)據(jù)結(jié)構(gòu)'
              
              
                ,
              
              
                '計(jì)算機(jī)網(wǎng)絡(luò)'
              
              
                ,
              
              
                '計(jì)算機(jī)組成原理'
              
              
                ,
              
              
                '操作系統(tǒng)'
              
              
                ]
              
              
                }
              
              
                ,
              
              
                'vicky'
              
              
                :
              
              
                {
              
              
                'age'
              
              
                :
              
              
                19
              
              
                ,
              
              
                'course'
              
              
                :
              
              
                [
              
              
                'xx經(jīng)濟(jì)學(xué)'
              
              
                ,
              
              
                '西方經(jīng)濟(jì)學(xué)'
              
              
                ,
              
              
                '統(tǒng)計(jì)學(xué)'
              
              
                ,
              
              
                '發(fā)展經(jīng)濟(jì)學(xué)'
              
              
                ]
              
              
                }
              
              
                }
              
            
          

可以看到,外層students字典里面存儲(chǔ)的依然是以學(xué)生姓名為鍵,學(xué)生其他信息為值的字典。

更過分地是學(xué)生其他信息里竟然還有個(gè)學(xué)生列表。

看我們?cè)趺刺幚磉@些數(shù)據(jù)。

            
              
                for
              
               name
              
                ,
              
               student 
              
                in
              
               students
              
                .
              
              items
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "姓名:"
              
              
                ,
              
               name
              
                ,
              
              
                ",年齡:"
              
              
                ,
              
               student
              
                [
              
              
                'age'
              
              
                ]
              
              
                ,
              
              
                ",所學(xué)課程:"
              
              
                )
              
              
                for
              
               course 
              
                in
              
               student
              
                [
              
              
                'course'
              
              
                ]
              
              
                :
              
              
                print
              
              
                (
              
              
                "\t"
              
              
                +
              
               course
              
                )
              
            
          

我們先來看看效果圖:

Python字典嵌套_第3張圖片

常規(guī)嘮叨(看懂代碼的可以跳過):

首先,我們定義了一個(gè)學(xué)生字典,里面有兩個(gè)學(xué)生的信息。

學(xué)生信息是以姓名為鍵,其他信息為值。

然后,我們遍歷最外層字典,然后依次將 students 的鍵和值賦值給變量 name student

接著,因?yàn)閷W(xué)生姓名賦值給了變量 name ,所以我們直接打印變量 name

學(xué)生的年齡信息存儲(chǔ)在 student 字典(內(nèi)層字典)里的,可以通過基本的字典訪問方法 student['age'] 拿到并打印出來。

最后,遍歷 student['course'] ,即課程列表,格式化輸出所學(xué)課程。

3.在列表里存儲(chǔ)字典

在列表里也可以存儲(chǔ)字典哦。

列表和字典的主要區(qū)別是前者沒有鍵而已。

這并不影響其存儲(chǔ)能力,事實(shí)上,列表也幾乎可以存儲(chǔ)所有的數(shù)據(jù)類型。

除了用字典存儲(chǔ)多個(gè)學(xué)生信息外,我們還可以用列表來存儲(chǔ)。

            
              student1 
              
                =
              
              
                {
              
              
                'name'
              
              
                :
              
              
                'kelvin'
              
              
                ,
              
              
                'age'
              
              
                :
              
              
                18
              
              
                ,
              
              
                'course'
              
              
                :
              
              
                [
              
              
                '數(shù)據(jù)結(jié)構(gòu)'
              
              
                ,
              
              
                '計(jì)算機(jī)網(wǎng)絡(luò)'
              
              
                ,
              
              
                '計(jì)算機(jī)組成原理'
              
              
                ,
              
              
                '操作系統(tǒng)'
              
              
                ]
              
              
                }
              
              

student2 
              
                =
              
              
                {
              
              
                'name'
              
              
                :
              
              
                'vicky'
              
              
                ,
              
              
                'age'
              
              
                :
              
              
                19
              
              
                ,
              
              
                'course'
              
              
                :
              
              
                [
              
              
                'xx經(jīng)濟(jì)學(xué)'
              
              
                ,
              
              
                '西方經(jīng)濟(jì)學(xué)'
              
              
                ,
              
              
                '統(tǒng)計(jì)學(xué)'
              
              
                ,
              
              
                '發(fā)展經(jīng)濟(jì)學(xué)'
              
              
                ]
              
              
                }
              
              
students 
              
                =
              
              
                [
              
              student1
              
                ,
              
               student2
              
                ]
              
            
          

我們先是定義了兩個(gè)學(xué)生字典,然后把它們存儲(chǔ)到了 students 列表中了。

怎么遍歷輸出字典列表的信息呢?

            
              
                for
              
               student 
              
                in
              
               students
              
                :
              
              
                print
              
              
                (
              
              
                "姓名:"
              
              
                ,
              
               student
              
                [
              
              
                'name'
              
              
                ]
              
              
                ,
              
              
                ",年齡:"
              
              
                ,
              
               student
              
                [
              
              
                'age'
              
              
                ]
              
              
                ,
              
              
                ",所學(xué)課程:"
              
              
                )
              
              
                for
              
               course 
              
                in
              
               student
              
                [
              
              
                'course'
              
              
                ]
              
              
                :
              
              
                print
              
              
                (
              
              
                "\t"
              
              
                +
              
               course
              
                )
              
            
          

直接上運(yùn)行結(jié)果:

Python字典嵌套_第4張圖片

沒人聽的碎碎念(看得懂代碼可以跳過):

首先,外層 for 循環(huán)依次取出存儲(chǔ)其中的字典(student1和student2)并把它們依次賦值給變量 student

然后,此時(shí)變量 student 就相當(dāng)于是某一個(gè)學(xué)生字典,所以我們可以通過 student['name'] student['age'] 訪問到學(xué)生的姓名和年齡。

最后,因?yàn)? student['course'] 存儲(chǔ)的是課程列表,所以需要循環(huán)打印列表。

結(jié)尾語

Python語法簡(jiǎn)單且靈活,本文講述的字典和列表嵌套可以當(dāng)作拋磚引玉,希望能起到舉一反三的效果。

如果你對(duì)文中講述的內(nèi)容還有疑惑,歡迎和我交流,我們一起在討論中進(jìn)步。

掃碼關(guān)注「猿天罡」

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 四虎影视永久 | 夜夜精品视频 | h录音 国产 在线 | 国产免费一级精品视频 | 青草视频国产 | 久久久久久久蜜桃 | 人人澡人人人人夜夜爽 | 欧美一级毛片一级 | 天天躁日日2018躁狠狠躁 | 欧美精品久久一区二区三区 | 成人999 | 国产精品久久久久影院色 | 尹人成人网 | 奇米777视频| 在线看一区 | 丁香久久| 欧美成人精品一级高清片 | 欧美精品久久 | 亚洲综合精品一区 | 欧美成人午夜做爰视频在线观看 | 毛片色毛片18毛片美女 | 欧美乱大交xxxxx另类 | 高清不卡免费一区二区三区 | 欧美日本日韩 | 国语自产偷拍精品视频偷最新 | 泰国一级毛片aaa下面毛多 | 九一精品| 四虎成人在线视频 | 国产欧美一区二区三区免费看 | 无夜精品久久久久久 | 一级特级片 | 在线婷婷 | 国产成人青青热久免费精品 | 久久久久国产精品四虎 | 黄黄网址| 日韩视频中文字幕 | 亚洲网站视频 | 四虎4hutv永久在线影院 | 99re6在线视频免费精品 | 亚洲国产午夜精品理论片的软件 | 色中色资源站 |