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

 更新时间:2021年11月15日 11:43:19   作者:Wanster  
这篇文章主要为大家详细介绍了python中字典和列表相互嵌套的问题,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

首先明确:

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.字典中不能全部由字典元素组成

总结

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

相关文章

  • Python全栈之学习MySQL(3)

    Python全栈之学习MySQL(3)

    这篇文章主要为大家介绍了Python全栈之MySQL,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • 讲解如何利用 Python完成 Saga 分布式事务

    讲解如何利用 Python完成 Saga 分布式事务

    这篇文章主要介绍了如何利用 Python 完成一个 Saga 的分布式事务,需要的朋友可以参考下面文章具体的内容
    2021-09-09
  • 简单了解python关键字global nonlocal区别

    简单了解python关键字global nonlocal区别

    这篇文章主要介绍了简单了解python关键字global nonlocal区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 基于Python实现股票收益率分析

    基于Python实现股票收益率分析

    这篇文章主要为大家详细介绍如何通过Python分析股票的收益率,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-04-04
  • Python 时间操作time详情

    Python 时间操作time详情

    这篇文章主要介绍了 Python 时间操作time详情,在Python高级语言中,内置库提供了time和datetime模块进行对时间日期的处理。本文,我们将进行对Time模块相关的方法进行学习,需要的朋友可以参考一下
    2021-11-11
  • 使用tensorflow框架在Colab上跑通猫狗识别代码

    使用tensorflow框架在Colab上跑通猫狗识别代码

    这篇文章主要介绍了使用tensorflow框架在Colab上跑通猫狗识别代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • conda配置python虚拟环境的实现步骤

    conda配置python虚拟环境的实现步骤

    本文主要介绍了conda配置python虚拟环境的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 浅析Python的Django框架中的Memcached

    浅析Python的Django框架中的Memcached

    这篇文章主要介绍了浅析Python的Django框架中的缓存机制,其中着重讲到了Memcached,需要的朋友可以参考下
    2015-07-07
  • python实现简单井字棋小游戏

    python实现简单井字棋小游戏

    这篇文章主要为大家详细介绍了python实现简单井字棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • python 如何读、写、解析CSV文件

    python 如何读、写、解析CSV文件

    这篇文章主要介绍了python 如何读、写、解析CSV文件,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03

最新评论