<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python中字典和列表的相互嵌套問題

          共 4405字,需瀏覽 9分鐘

           ·

          2021-11-20 21:56


          在學習過程中遇到了很多小麻煩,所以將字典列表的循環(huán)嵌套問題,進行了個淺淺的總結分類。

          1. 列表中存儲字典

          2. 字典中存儲列表

          3. 字典中存儲字典

          4. 易錯點


          首先明確:

          ①訪問字典中的元素:dict_name[key]  /  dict_name.get(key)

          ②訪問列表中的元素:list_name[索引]

          1. 1.列表中存儲字典:

          • ①列表中存儲多個字典

          
               
          1. p={'name':'lin','age':21}

          2. y={'name':'xue','age':20}

          3. c=[p,y]

          4. print(c)


          1. 輸出結果:
            [{'name': 'Jonh', 'age': 18}, {'name': 'Marry', 'age': 19}]
          2. ②訪問列表中字典的值


          3.  

            輸出結果:

            person's name is Jonh
            Marry's age is 19
             
            1. print(f"person's name is {people[0].get('name')}")

            2. print(f"{people[1].get('name')}'s age is {people[1].get('age')}")

            3. #先用person[0/1]訪問列表里的元素(字典),再用get方法訪問字典里的值

          4. ③遍歷訪問多個值

          
               
          1. for person in people:

          2. #將列表中的字典,依次賦值給person

          3. print(f"{person['name']}'s age is {person['age']}")

          4. #取出每個循環(huán)里變量person(字典)的鍵和值


           輸出結果:

          Jonh's age is 18
          Marry's age is 19

           因為字典中有多個鍵值對,所以進行多層嵌套。

          外層嵌套訪問列表中的每個字典,內層嵌套訪問每個字典元素的鍵值對。

          
               
          1. for person in people:

          2. #在每個遍歷的字典里再進行嵌套(內層循環(huán))

          3. for k,v in person.items():

          4. print(f"{k}:{v}")


          輸出結果:

          name:Jonh
          age:18
          name:Marry
          age:19

          2.字典中存儲列表

          ①訪問字典中的列表元素

          先用list[索引]訪問列表中的元素,用dict[key]方法訪問字典中的值。

          
               
          1. favourite_places={

          2. 'lin':['beijing','tianjin'],

          3. 'jing':['chengdu','leshan'],

          4. 'huang':['shenzhen']

          5. }

          6. #訪問字典中的值可以用:dict_name[key]

          7. print(favourite_places['lin'])

          8. #訪問列表里面的元素用索引:list_name[索引]

          9. print(favourite_places['lin'][0].title())


          輸出結果: 

          ['beijing', 'tianjin']
          Beijing

          循環(huán)訪問字典中列表的元素,也是要用dict_name[key]先訪問字典中的值(列表)

          
               
          1. for i in favourite_places['lin']:

          2. print(i.title())


          輸出結果:

          Beijing
          Tianjin

          ②訪問字典中的值(字典中的值為列表)

          注意:直接訪問字典中的值,會以列表的形式呈現。

          
               
          1. for name,place in favourite_places.items():

          2. print(f"{name.title()}'s favourite places are {place}")


           輸出結果:

          Lin's favourite places are ['beijing', 'tianjin']
          Jing's favourite places are ['chengdu', 'leshan']
          Huang's favourite places are ['shenzhen']

          為了避免,要進行循環(huán)嵌套

          
               
          1. for names,places in favourite_places.items(): #對三個鍵值對先進行一個大循環(huán)

          2. print(f'{names.title()} favourite places are:') #在大循環(huán)里每一組鍵值對開頭先打印這句話

          3. for place in places: #之后再對值進行一個小循環(huán),打印出值中的每個元素

          4. print(place.title())


          輸出結果:

          Lin favourite places are:
          Beijing
          Tianjin
          Jing favourite places are:
          Chengdu
          Leshan
          Huang favourite places are:
          Shenzhen


          3.字典中存儲字典

          ①字典中不能全部由字典元素組成,會報錯。

          
               
          1. p={'name':'lin','age':21}

          2. y={'name':'xue','age':20}

          3. c={p,y}

          4. print(c)


          TypeError                                 Traceback (most recent call last)
          <ipython-input-46-4127ab9ea962> in <module>
          1 p={'name':'lin','age':21}
          2 y={'name':'xue','age':20}
          ----> 3 c={p,y}
          4 print(c)

          TypeError: unhashable type: 'dict'


          ②字典中的值可由字典組成

          
               
          1. users={

          2. 'a':{'name':'lin','age':21},

          3. 'b':{'name':'xue','age':20}

          4. }

          5. print('-----------直接訪問輸出-------------------')

          6. print(users['a']['name'],users['a']['age'])

          7. print(users['b']['name'],users['b']['age'])

          8. print('\n-----------循環(huán)嵌套的方法輸出-------------------')

          9. for username,userinfo in users.items():

          10. print('\n'+username+':')

          11. for name,age in userinfo.items():

          12. print(name,age)


          輸出結果:

          -----------直接訪問輸出-------------------
          lin 21
          xue 20

          -----------循環(huán)嵌套的方法輸出-------------------


          a:
          name lin
          age 21


          b:
          name xue
          age 20





          4.容易出的小錯誤:

          ①訪問順序:

          可以用dict_name[key]  /  dict_name.get(key)訪問字典的值,也可以用列表索引list_name[索引]訪問列表的值。但是要注意哪個在外,哪個在內,先訪問外層,再訪問內層,直接訪問內層的會出錯。

          ②字典的值為列表,訪問的結果是輸出整個列表

          需要嵌套循環(huán)遍歷里面的鍵值對。

          ③字典中不能全部由字典元素組成














          Python“寶藏級”公眾號【Python之王】專注于Python領域,會爬蟲,數分,C++,tensorflow和Pytorch等等

          近 2年共原創(chuàng) 100+ 篇技術文章。創(chuàng)作的精品文章系列有:

          日常收集整理了一批不錯的 Python 學習資料,有需要的小伙可以自行免費領取。

          獲取方式如下:公眾號回復資料領取Python等系列筆記,項目,書籍,直接套上模板就可以用了。資料包含算法、python、算法小抄、力扣刷題手冊和 C++ 等學習資料!


          瀏覽 39
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99这里是精品 | 青青草在线免费视频 | 91无码| 亚洲一级无码毛片 | 亚洲在在线观看 |