python中字典和列表的相互嵌套问题详解

作者:Wanster 时间:2022-03-19 23:14:53 

目录
  • 1.列表中存储字典:

    • 1.列表中存储多个字典

    • 2.访问列表中字典的值

    • 3.遍历访问多个值

  • 2.字典中存储列表

    • 1.访问字典中的列表元素

    • 2.访问字典中的值(字典中的值为列表)

  • 3.字典中存储字典

    • 1.字典中不能全部由字典元素组成,会报错。

    • 2.字典中的值可由字典组成

  • 4.容易出的小错误:

    • 总结

      首先明确:

      1.访问字典中的元素:dict_name[key] / dict_name.get(key)

      2.访问列表中的元素:list_name[索引]

      1.列表中存储字典:

      1.列表中存储多个字典


      p={'name':'lin','age':21}
      y={'name':'xue','age':20}
      c=[p,y]
      print(c)

      输出结果:

      [{'name': 'Jonh', 'age': 18}, {'name': 'Marry', 'age': 19}]

      2.访问列表中字典的值


      print(f"person's name is {people[0].get('name')}")
      print(f"{people[1].get('name')}'s age is {people[1].get('age')}")
      #先用person[0/1]访问列表里的元素(字典),再用get方法访问字典里的值

      输出结果:

      person's name is Jonh
      Marry's age is 19

      3.遍历访问多个值


      for person in people:                                            
      #将列表中的字典,依次赋值给person                      
         print(f"{person['name']}'s age is {person['age']}")          
         #取出每个循环里变量person(字典)的键和值

      输出结果:

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

      因为字典中有多个键值对,所以进行多层嵌套。

      外层嵌套访问列表中的每个字典,内层嵌套访问每个字典元素的键值对。


      for person in people:    
         #在每个遍历的字典里再进行嵌套(内层循环)
         for k,v in person.items():          
             print(f"{k}:{v}")

      输出结果:

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

      2.字典中存储列表

      1.访问字典中的列表元素

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


      favourite_places={
         'lin':['beijing','tianjin'],
         'jing':['chengdu','leshan'],
         'huang':['shenzhen']
      }
      #访问字典中的值可以用:dict_name[key]
      print(favourite_places['lin'])
      #访问列表里面的元素用索引:list_name[索引]
      print(favourite_places['lin'][0].title())

      输出结果:

      ['beijing', 'tianjin']
      Beijing

      循环访问字典中列表的元素,也是要用dict_name[key]先访问字典中的值(列表)


      for i in favourite_places['lin']:    
         print(i.title())

      输出结果:

      Beijing
      Tianjin

      2.访问字典中的值(字典中的值为列表)

      注意:直接访问字典中的值,会以列表的形式呈现。


      for name,place in favourite_places.items():
         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']

      为了避免,要进行循环嵌套


      for names,places in favourite_places.items():  #对三个键值对先进行一个大循环
         print(f'{names.title()} favourite places are:') #在大循环里每一组键值对开头先打印这句话
         for place in places:      #之后再对值进行一个小循环,打印出值中的每个元素
             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}
      y={'name':'xue','age':20}
      c={p,y}
      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'

      2.字典中的值可由字典组成


      users={
         'a':{'name':'lin','age':21},
         'b':{'name':'xue','age':20}
      }
      print('-----------直接访问输出-------------------')
      print(users['a']['name'],users['a']['age'])
      print(users['b']['name'],users['b']['age'])
      print('\n-----------循环嵌套的方法输出-------------------')
      for username,userinfo in users.items():
         print('\n'+username+':')
         for name,age in userinfo.items():
             print(name,age)

      输出结果:

      -----------直接访问输出-------------------
      lin 21
      xue 20

      -----------循环嵌套的方法输出-------------------

      a:
      name lin
      age 21

      b:
      name xue
      age 20

      4.容易出的小错误:

      1.访问顺序: 可以用dict_name[key] / dict_name.get(key)访问字典的值,也可以用列表索引list_name[索引]访问列表的值。但是要注意哪个在外,哪个在内,先访问外层,再访问内层,直接访问内层的会出错。

      2.字典的值为列表,访问的结果是输出整个列表 需要嵌套循环遍历里面的键值对。

      3.字典中不能全部由字典元素组成

      总结

      本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

      来源:https://blog.csdn.net/Wanster/article/details/121319837

      标签:python,字典,列表,嵌套
      0
      投稿

      猜你喜欢

    • python利用线程实现多任务

      2023-10-02 07:15:40
    • Oracle 启动例程 STARTUP参数说明

      2009-07-07 10:26:00
    • Python使用pandas导入csv文件内容的示例代码

      2022-07-25 15:34:16
    • 图片垂直居中的使用技巧

      2008-05-28 12:45:00
    • 一篇文章搞懂Python Unittest测试方法的执行顺序

      2023-11-01 09:38:01
    • Python的时间模块datetime详解

      2023-10-17 01:36:48
    • Python 爬虫之超链接 url中含有中文出错及解决办法

      2023-07-27 00:25:06
    • python利用后缀表达式实现计算器功能

      2022-08-26 03:25:35
    • 详解python列表生成式和列表生成式器区别

      2021-09-13 16:15:14
    • Python生成指定数量的优惠码实操内容

      2021-06-12 18:29:25
    • python与c语言的语法有哪些不一样的

      2021-07-09 17:47:35
    • 详解Python使用tensorflow入门指南

      2023-08-22 13:37:09
    • python环形单链表的约瑟夫问题详解

      2023-03-02 04:13:10
    • python自动化测试selenium操作下拉列表实现

      2023-09-06 00:26:50
    • 详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)

      2022-05-10 01:18:53
    • 使用SQL语句,查第10-20条记录

      2008-02-19 18:34:00
    • PyQt5高级界面控件之QTableWidget的具体使用方法

      2023-09-05 15:36:41
    • python 求两个向量的顺时针夹角操作

      2021-05-26 13:31:10
    • Python解释器及PyCharm工具安装过程

      2021-02-23 08:21:51
    • python使用rabbitmq实现网络爬虫示例

      2022-04-20 20:11:58
    • asp之家 网络编程 m.aspxhome.com