资讯专栏INFORMATION COLUMN

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

番茄西红柿 / 2968人阅读

摘要:在学习过程中遇到了很多小麻烦所以将字典列表的循环嵌套问题进行了个浅浅的总结分类。外层嵌套访问列表中的每个字典内层嵌套访问每个字典元素的键值对。

在学习过程中遇到了很多小麻烦,所以将字典列表的循环嵌套问题,进行了个浅浅的总结分类。

  1. 列表中存储字典
  2. 字典中存储列表
  3. 字典中存储字典
  4. 易错点

首先明确:

①访问字典中的元素:dict_name[key]  /  dict_name.get(key)
②访问列表中的元素:list_name[索引]
  1. 1.列表中存储字典:

  • ①列表中存储多个字典

p={'name':'lin','age':21}y={'name':'xue','age':20}c=[p,y]print(c)
  1. 输出结果:[{'name': 'Jonh', 'age': 18}, {'name': 'Marry', 'age': 19}]
  2. ②访问列表中字典的值

  3. 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 JonhMarry's age is 19
  4. ③遍历访问多个值

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

 输出结果:

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

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

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

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

输出结果:

name:Jonhage:18name:Marryage:19

2.字典中存储列表

①访问字典中的列表元素

先用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())

输出结果:

BeijingTianjin

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

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

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:BeijingTianjinJing favourite places are:ChengduLeshanHuang favourite places are:Shenzhen

3.字典中存储字典

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

p={'name':'lin','age':21}y={'name':'xue','age':20}c={p,y}print(c)
TypeError                                 Traceback (most recent call last) in       1 p={'name':'lin','age':21}      2 y={'name':'xue','age':20}----> 3 c={p,y}      4 print(c)TypeError: unhashable type: 'dict'

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

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 21xue 20-----------循环嵌套的方法输出-------------------a:name linage 21b:name xueage 20

4.容易出的小错误:

①访问顺序:

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

②字典的值为列表,访问的结果是输出整个列表

需要嵌套循环遍历里面的键值对。

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123373.html

相关文章

  • python基础教程:序列化

    摘要:默认情况下,它也是不安全的,如果数据是由黑客精心设计的,则反序列化的数据可能被植入恶意代码。总结为我们提供了数据序列化的工具。如果是自己内部使用,可以作为一个选择进行复杂对象的序列化。 上一节我们学习了文件的读写,把一个字符串(或字节对象)保存到磁盘是一件很容易的事情。但是在实际编程中,我们经常需要保存结构化数据,比如复杂的字典、嵌套的列表等等,这时候就需要我们想办法把这些结构化数据先...

    gityuan 评论0 收藏0
  • Python 基础起步 (七) 初识字典 Dictionary(绝命毒师前传)

    摘要:大家好,我是小白,书接上回,我们目前已经了解到了中很常见的一种数据类型,也初步掌握了一些自带的有关的方法今天为大家介绍另外一种异常火爆的数据结构字典,不夸张的讲,基本上我们熟悉了列表和字典后有关数据结构这里就差不多啦,实际的项目中应用的最多 大家好,我是小白,书接上回,我们目前已经了解到了Python中很常见的一种数据类型:List,也初步掌握了一些Python自带的有关List的方法...

    BaronZhang 评论0 收藏0
  • 操作之灵魂——拷贝

    摘要:原文地址首先需要搞清楚两个概念赋值和引用,对于操作赋值操作程序先新建对象,然后将的值拷贝到中。切片操作属于浅拷贝。 原文地址 首先需要搞清楚两个概念:赋值和引用,对于操作 target = source: 赋值操作:程序先新建对象target,然后将source的值拷贝到target中。这里,target和source值相同,但是它们是两个完全不同的对象。 引用操作:程序直接将tar...

    codercao 评论0 收藏0
  • Python学习之路5-字典

    摘要:本章主要介绍字典的概念,基本操作以及一些进阶操作。使用字典在中,字典是一系列键值对。中用花括号来表示字典。代码定义空字典的语法结果如果要修改字典中的值,只需通过键名访问就行。 《Python编程:从入门到实践》笔记。本章主要介绍字典的概念,基本操作以及一些进阶操作。 1. 使用字典(Dict) 在Python中,字典是一系列键值对。每个键都与一个值相关联,用键来访问值。Python中用...

    NicolasHe 评论0 收藏0
  • Python数据类型分支循环

    摘要:会认为子类是一种父类类型。一般记为它是编程语言中表示文本的数据类型。运算是与运算,只有所有都为,运算结果才是布尔值经常用在条件判断中列表列表是中使用最频繁的数据类型。是中内置的一种数据类型,可以随时添加和删除其中的元素。 了解过了Python的发展历史,现在开始我们的Python基础吧,如果你有学习过其他的编程语言,你可以跳过这一篇 PyCharm使用图解 开发python的工具你可以...

    archieyang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<