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

a85bcb8987087800e7067181014c5b34.gif

文 | 猿天罡

前言

前两篇文章,我们学习了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)

运行结果如下:

d06e714e5f08343f2fb93573a02fffad.png

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

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

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

最后,我们通过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.在字典里存储字典

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

027cb8d64414f719a210774e92827b55.png

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

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

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

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux如查看是否安装了mysql_linux中如何查看mysql是否安装

linux中查看mysql是否安装的方法:1、mysql的守护进程是mysqld如果已经安装则:[rootlocalhost ~]# service mysqld start启动 MySQL: [确定]如果没有安装则:[rootlocalhost ~]# service mysqld startmysqld:未被识别的服务2、通过查看服务是否…

新鲜的宣传册设计

原文地址:http://www.goodfav.com/brochure-designs-9367.html 宣传画册设计印刷在品牌以及企业形象建设疏导方面扮演着非常重要的角色。宣传册设计是理想的营销材料。他们将帮助您建立有意向目标受众,提供有价值的信息。如果没有企业宣传册,…

mysql门派年龄最大的人_目前活着年龄最大的人

每逢老人过生日,子女都会祝他长命百岁,但事实上,长命百岁能过百岁的人少之又少。那么大家知道中国现在活着的最长寿的人是谁吗?下面让小编为大家揭晓答案吧!比正式的历史文献记载最长寿者年长14岁中新网曾对这一名黎巴嫩妇女进行报道&#x…

解决Gradle生成Eclipse支持后,发布到Tomcat丢失依赖jar包的问题

最近一个项目中,使用号称下一代构建工具的Gradle构建项目。 使用中发现一个问题,Gradle从中央库下载的jar文件在系统的其它目录,使用gradle eclipse添加Eclipse支持时,jar文件是以外部依赖的形式导入的。Eclipse将web项目发布到To…

mysql 执行计划_mysql执行计划

执行计划使用explain sql查询。1、 构造数据usecoshaho002;drop table if existsinfo;create tableinfo(idint primary keyAUTO_INCREMENT,namevarchar(32),agetinyint,sexvarchar(8),addressvarchar(32),phonevarchar(32),birthday date,descriptionvarchar(128));alter table…

python中cock什么意思_[转载]原创脚本逐步实现Autodcock-Vina的虚拟筛选及筛选后分析...

[转载]原创脚本逐步实现Autodcock-Vina的虚拟筛选及筛选后分析(2013-07-03 11:31:56)标签:转载Vina是在Autodock4基础上改进的算法,相比autodock4而言,具体优势:准确,并行计算(官网数据):AutoDockVina is a…

Entity Framework 4.1 : 贪婪加载和延迟加载

这篇文章将讨论查询结果的加载控制。 EF4.1 允许控制对象之间的关系,当我们进行查询的时候,哪些关系的数据将会被加载到内存呢?所有相关的对象都需要吗?在一些场合可能有意义,例如,当查询的实体仅仅拥有一个…

python数据结构编程_写给Python编程高手之 数据结构

python视频教程栏目介绍Python编程需要注意的关键点。如何在列表,字典,集合中根据条件筛选数据案例:如何在下列列表data中筛选出大于0的数data [1, -1, 2, 3, 4, 7]复制代码使用filter函数,第一个参数为一个函数,也可…

python编写下载器可暂停_Python编写一个优美的下载器

本文实例为大家分享了python编写下载器的具体代码,供大家参考,具体内容如下 #!/bin/python3# author: lidawei# create: 2016-07-11# version: 1.0# 功能说明:# 从指定的URL将文件取回本地#################################################…

修改页面后获得flag_简单的CTF-从JS中获取flag

本文是一篇从合天网安实验室进行实验操作的笔记,一次非常简单地从JS中获取到flag的操作。1. 进入题目页(10.1.1.219:20123)看到一段话,还有一句很明显的提示语句“The evil url is the passkey”,翻译出来就是损坏的url就是flag。下面的英文…

快速下载助手1.1--添加断点下载

在上一章中实现了多线程的断点下载,将快速下载助手添加断点下载功能,明天实现了速率统计功能 效果图如下: 打印信息如下: 欢迎使用快速下载助手-->并不是线程多就下载的快! 文件夹已经存在 默认的线程个数:3 保存路…

mysql查询自定义数据_实现自定义查询的数据库设计及实现(一)

需求先说一下需求:实现用户自定义的查询,用户可以自定义要查询的列、自定义条件条件、自定义排序。除了查询使用外,还可以使用于各个需要根据条件进行约束的业务,如权限;本设计和实现,很大部分是通过数据库…

java 合并流_Java Stream 流实现合并操作示例

本文实例讲述了Java Stream 流实现合并操作。分享给大家供大家参考,具体如下:1. 前言Java Stream Api提供了很多有用的 Api 让我们很方便将集合或者多个同类型的元素转换为流进行操作。今天我们来看看如何合并 Stream 流。2. Stream 流的合并Stream 流合…

java 去掉 t_java中的“\t”

对于初学者来说,java中的"\t"和空格总是让人迷惑,其实很简单,通过一个例子就能很快明白!比如说打印九九乘法表!先来看用空格的效果!1 package cn.edu.nwpu.java;23 public class MultiplicationT…

java service层 事务_Java高并发秒时啊API之Service层1

---2-1 使用Spring托管Service依赖理论----------------------------spring ioc优势(工厂模式):1.对象创建统一托管2.规范的生命周期管理3.灵活的依赖注入4.一致的获取对象Spring IOC 功能的理解DAO依赖Service依赖最终形成一致访问接口;随意访问依赖对象Spring IOC…

zoj 3720

为什么注释掉的地方是错的&#xff1f; 自己的代码好糟烂..... 直接枚举点 判是否在多边形内 加起来求概率 求面积的时候代码写搓了.... 比不过别人两行的代码 而且到现在还找不到错..... #include <iostream> #include <fstream> #include <cstri…

void在java中是什么意思_java中void什么意思

在java中&#xff0c;void代表的意思是“空”&#xff0c;即“什么都不返回”&#xff0c;在方法申明的时候表示该方法没有返回值。void对应着一个Void类&#xff0c;Void类是用final修饰的&#xff0c;是一个不可实例化的占位符类。之前&#xff0c;在学C的数据类型的时候发现…

《设计模式》-模板模式

玩物丧志啊&#xff01;&#xff01;&#xff01;最近总想着玩&#xff0c;休息&#xff0c;结果又耽误了半个月。。唉&#xff01; 惭愧啊。 今天是设计模式的倒数第二个了。。 虽然前面的 忘得差不多了。不过等看完了 要进行总复习&#xff0c;再复习&#xff0c;再回归&…

一看就会之—利用IIS服务发布网站(实践篇)上

转自&#xff1a;http://blog.csdn.net/zwk626542417/article/details/9796259 概述 IIS全称为互联网信息服务&#xff0c;是由微软公司提供的基于运行MicrosoftWindows的互联网基本服务&#xff0c;今天我们主要来看下如何用win7系统自带的IIS服务来发布我们开发的一个简单的…

xp变量 java_winxp系统设置java环境变量的详细教程

我们都知道想要进行java的程序编辑&#xff0c;就要首先在电脑上设置环境变量&#xff0c;这样才能够运行java程序&#xff0c;下面一起看看xp系统的电脑如何设置java变量。1、设置环境变量之前&#xff0c;我们肯定首先需要安装java&#xff0c;首先&#xff0c;找到你安装jav…