文 | 猿天罡

前言

前两篇文章,我们学习了Python字典的基本用法和遍历字典的三种方式。

为了让小伙伴们不耗费多余的注意力,我们举的例子都尽可能的简单,不信你回去看看,字典键对应的值都是基本数据类型(字符串、数字等)。

其实,字典里键对应的值可以很复杂。

我们可以在字典中存储列表,在列表中存储字典,在字典中存储字典等等。

Python中几乎所有的数据类型,都可以存进字典里。

学习不是一日之功,需摆正心态,持之以恒,希望小伙伴们对学习一门语言抱有基本的耐心

下面我们来开心地学习吧。

1.在字典里存储列表

1.1字典里不全是列表

笔者在大学的时候,需要学习四门基础专业课。

course = ['数据结构', '计算机网络', '计算机组成原理', '操作系统']

如果我们声明一个学生字典,则专业课列表应该在学生字典之中。

student = { 'name': 'kelvin', 'age': 18, 'course': ['数据结构', '计算机网络', '计算机组成原理', '操作系统']}

注:也可以用双引号包裹字符串(别的文章可不会提醒的这么详细)

这种情况下,要想访问课程列表,和我们讲的字典访问方法一毛一样(基础挺重要的):student['course']。

下面我们来打印这个学生的信息。

# 概述学生基本信息print('姓名:', student['name'], '年龄:', student['age'])print('课程信息如下:')for course in student['course']: print("" + course)

运行结果如下:

说明(看得懂代码可以跳过):

首先,我们创建了一个学生字典,字典里存储了学生的姓名、年龄和课程信息。姓名和年龄都是基本数据类型(一个字符串另一个数字),课程是列表结构。

然后,我们通过字典访问方法字典['键'],一下子就把姓名和年龄拿到并输出了。

最后,我们通过student['course']拿到了一个课程列表,但直接输出格式太不好看了,所以我们对其进行了遍历,依次输出学生要上的课程。

1.2字典里全是列表

还有一种字典里存列表的情况:键对应的值全是列表。

遇到这种情况心里可以偷着乐,因为循环遍历的时候格式会很好看(后文会有解释)。

学校老师需要每个学生的课程信息(因为有的人选课会不一样)。

这个时候把学生姓名做键(实际情况下是用学号,姓名会重复),以学生课程列表为值可以组成字典。

courses = { 'kelvin': ['数据结构', '计算机网络', '计算机组成原理', '操作系统'], 'vicky': ['xx经济学', '西方经济学', '统计学', '发展经济学']}

我们把多个学生的课程表打印输出。

for name, course in courses.items(): print(name + '同学所学课程:') for c in course: print("" + c)

因为每个键对应的都是列表,所以需要再使用一个for循环来遍历学生课程列表。

解释(看得懂代码可以跳过):

首先,使用外层for循环,依次将courses字典里的键和值分别赋值给变量name和course。

然后,name对应的值是个简单的字符串,所以我们直接打印输出了。

最后,遍历course列表,格式化地打印学生所学课程。

再注:字典里不全是字典也可以用双层循环,只不过我们需要加个if判断,如果值是列表才能进入到内层循环。

2.在字典里存储字典

字典里存储字典很像俄罗斯套娃。

循环(打开)一层字典后,面对的还是字典,真是让人惊喜又惊喜。

和在字典中存储列表一样,在字典里存储字典也有两种情况。

聪明的小伙伴已经猜到了:在字典里不全是字典和在字典里全是字典。

看着让人有点头晕(建议看下前面的小标题清醒一下)。

因为在字典里不全是字典比较简单(不理解的欢迎私信),所以我们重点讲讲在字典里全是字典的情况。

学校需要学生信息表(不是学生所上课程信息)。

如果要用字典来存储的话,可以这样。

students = { 'kelvin': { 'age': 18, 'course': ['数据结构', '计算机网络', '计算机组成原理', '操作系统'] }, 'vicky': { 'age': 19, 'course': ['xx经济学', '西方经济学', '统计学', '发展经济学'] }}

可以看到,外层students字典里面存储的依然是以学生姓名为键,学生其他信息为值的字典。

更过分地是学生其他信息里竟然还有个学生列表。

看我们怎么处理这些数据。

for name, student in students.items(): print("姓名:

python的遍历字典里的键然后放到一个列表里_Python列表和字典互相嵌套怎么办?看完让你没有疑惑...相关推荐

  1. python如何输入多个数据并增加到一个列表里_python 将表格多个列数据放到同一个单元格中...

    反过来 以";"分隔上图F列 结果显示为 卡片1 卡片2 卡片3 的结果 def readExcelDataByName(filename, sheetName): '''读取Ex ...

  2. 惊了!哆啦A梦里最能打的道具,居然真实存在!还打破了世界纪录,看完跪了....

    全世界只有3.14 % 的人关注了 爆炸吧知识 生活处处有科学 <哆啦A梦>里的空气炮,是很多人童年时梦寐以求的神奇道具. 只要将手伸进炮筒,就能发出强大的压缩空气炮,瞬间击倒体型庞大的怪 ...

  3. python字典编码_Python列表,字典,元组,字符串操作,文件操作,字符编码

    1. 列表操作 1.1 列表的定义: names = ["wangjing", "wangjun", "hashiqi"] names[0] ...

  4. python列表生成字典_Python 列表生成式 字典生成式

    Python 列表生成式 & 字典生成式 通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in ran ...

  5. python列表、字典、元组的用法及区别_python列表,字典,元组简单用法示例

    本文实例讲述了python列表,字典,元组简单用法.分享给大家供大家参考,具体如下: 列表 #_*_ coding:utf-8 _*_ # 列表,定义在方括号的形式中,可以进行切片操作. #它没有固定 ...

  6. python列表字典的区别_python列表和字典区别

    列表 1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的 2.通过偏移读取 组成列表的值叫做元素(Elements).每一个元素被标识一个索引,第一个索引是0,序列的功能都能实现 ...

  7. Python多进程multiprocessing共享数据Value(包括常用的整数、字符串)、列表及字典以及Queue

    1. 共享Value.列表以及字典 import multiprocessing import ctypes import timedef process_write(int_data, str_da ...

  8. python字典题_python列表、字典相关练习题

    1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名.年龄.成绩(单科).电话.性别(男.女.不明) student={'name':'张三','age':'23','score':88,'te ...

  9. python tab和空格混用_Python编程常见十大错误,看完你自己都笑了!

    关注并置顶[柠檬班]的小哥哥小姐姐 胸有成"猪" 使用python会出现各种各样的错误,以下是Python常见的错误以及解决方法.  01 ValueError ValueErro ...

最新文章

  1. [dp] Jzoj P5804 简单的序列
  2. hasnMap的基本操作 源码(三)
  3. Android Architecture Components Part2:LiveData
  4. 2018焦作网络赛-E- Jiu Yuan Wants to Eat
  5. 汇编语言--串处理指令
  6. 如何高效学习前端新知识,拓展视野,我推荐
  7. 单元测试01:nunit 安装与代码测试
  8. 环境变量_Jenkins流水线环境变量权威指南
  9. 蚂蚁员工人均都能买一套杭州的房子了?!加油啊,打工人!
  10. Linux 基金会与 RISC-V 基金会合作推广开源芯片
  11. html画布的作用,HTML的canvas标签作用
  12. docker搭建python开发环境_PyCharm使用之利用Docker镜像搭建Python开发环境
  13. gateway网关_公司要把网关Zuul换成Gateway,再难也得顶上
  14. 计算机四级网络工程师需要看哪些书,计算机四级网络工程师考试教材
  15. php webshell 过狗
  16. Preparing transaction:done Verifying transaction:failed RemoveError:‘requests‘ is a dependency of **
  17. JavaScript之“创意时钟”项目
  18. unity | 写一个XML和用unity读取XML
  19. 文件下载(功能实现)(详细分析)
  20. 教你怎么去创建一个代币!

热门文章

  1. python实例 81,82
  2. C++重载流插入运算符与流提取运算符
  3. 图片动画效果html5,8个实用炫酷的HTML5图片动画应用
  4. 03 CSS听课笔记
  5. PyTorch 1.0 中文文档:常见问题解答
  6. 004-linux常用命令-权限管理命令
  7. 第十章 深入理解Session与Cookie
  8. mysql if--else
  9. abctod_123456
  10. Mac安装软件报“打不开。。。,因为它来自身份不明的开发者”的解决办法