【python基础】复杂数据类型-字典(嵌套)
有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。我们可以在列表中嵌套字典、在字典中嵌套列表、在字典中嵌套字典。
1.列表嵌套字典
我们可以把一个人的信息放在字典中,但是多个人的信息我们无法放在同一个字典中,所以就需要字典列表。
其语法格式:
[字典1,字典2,,,,,字典n]
编写程序如下所示:

现在我们知道了peoples是一个列表变量,peoples的数据元素是两个字典,那么我们如何通过列表来操作字典呢?
比如,我们要修改第二个字典的'name',将值修改为'王五',编写程序如下所示:

因为peoples是一个列表,我们先将列表遍历,此时的people就是一个字典变量,我们通过字典的键值对访问找到哪个字典的'name'== '李四',找到之后我们再通过字典的键值对修改,将'name'键的值更新为'王五'即可。
2.字典嵌套列表
有时我们需要将列表存储在字典中,比如一个人的爱好可以有很多,但是爱好是一个人信息中的一项,也就是字典中的一个键值对,其语法格式:
{键1:值1,键2:值2,键3:列表1,,,,键n:值n}
编写程序如下所示:

我们现在知道people是一个字典变量,其中有四个键值对,第四个键值对为列表,那么我们如何通过字典来操作列表呢?
比如我们给'hobby'添加一个'乒乓球'的数据元素,编写程序如下所示:

因为people是一个字典,通过字典对键值对的访问,将值赋值给一个列表变量hobby,然后通过列表添加数据元素,调用append函数,将'乒乓球'加入列表中。
3.字典嵌套字典
有时需要在字典中嵌套字典,比如一个人的信息中地址信息我们按照省市县进行划分,其语法格式:
{键1:值1,键2:值2,键3:字典1,,,,键n:值n}
编写程序如下所示:

我们现在知道people是一个字典变量,其中有四个键值对,第四个键值对为字典,那么我们如何通过字典来操作字典呢?
比如我们给'address'地址信息,加上街道键值对,编写程序如下所示:

因为people是一个字典,通过字典对键值对的访问,将值赋值给一个字典变量address,然后通过字典添加键值对的方式,将'jiedao':'xxx街道'添加到address这个字典变量中。
4.三者综合
在列表中嵌套字典,在字典中嵌套列表,在字典中嵌套字典根据数据信息的不同可以随机组合,编写程序如下所示

运行结果如下所示:

红色横线上面是初始peoples的初始结果,下面是经过数据操作之后的结果。
总而言之,字典与列表之间的嵌套,在程序中种类及层级都是不定的,我们要一层层去抛开数据,获取我们想要的字典或者列表,然后对其进行数据操作。
【python基础】复杂数据类型-字典(嵌套)的更多相关文章
- python基础一数据类型之字典
摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...
- Python基础之数据类型
Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...
- Python基础知识(五)------字典
Python基础知识(四)------字典 字典 一丶什么是字典 dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 键: 必须是可哈希,(不可变的数据类型 ...
- 第二章:python基础,数据类型
"""第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...
- 『Python基础-10』字典
# 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...
- Python基础——原生数据类型(字典,列表,元组,字符串)
字典Dictionary 字典定义了键值对的1对1管理. 1.定义字典 请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式. 我们能通过key得到value,但是不能 ...
- 第一节 Python基础之数据类型(整型,布尔值,字符串)
数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...
- Python基础2 列表 字典 集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- python基础(二)----数据类型
Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...
- python基础——列表、字典
Python核心数据类型--列表 列表是一个任意类型的对象的位置相关的有序集合,它没有固定的大小.大小可变的,通过偏移量进行赋值以及其他各种列表的方法进行调用,能够修改列表.其他更多的功能可以查阅py ...
随机推荐
- Ubuntu桌面顶端没有网络图标
1 问题描述 刚装完新的linux系统后发现桌面顶部没有出现网络连接图标,网络无法进行连接配置. 2 解决方案 打开终端执行命令 nmcli network on或者sudo nmcli networ ...
- [Volo.Abp升级笔记]使用旧版Api规则替换RESTful Api以兼容老程序
@ 目录 原理分析 开始改造 更换基类型 重写接口 替换默认规则 在微服务架构中的问题 Volo.Abp 配置应用层自动生成Controller,增删查改服务(CrudAppService)将会以RE ...
- 用 Go 剑指 Offer 12. 矩阵中的路径
给定一个 m x n 二维字符网格 board 和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则,返回 false . 单词必须按照字母顺序,通过相邻的单元格内的字母 ...
- LeetCode 双周赛 102,模拟 / BFS / Dijkstra / Floyd
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,欢迎来到小彭的 LeetCode 周赛解题报告. 昨晚是 LeetCode 双周赛第 102 场,你 ...
- Spring注解@Conditional相关用法
1.@Conditional注解 @Conditional 是Spring4新提供的注解. 它的作用是按照一定的条件进行判断,满足条件给容器注册bean,否则不注入. 可以作用在方法上,也可以作用在类 ...
- Flowable启动报错problem during schema upgrade&&couldn‘t upgrade db schema:
1.错误信息 problem during schema upgrade, statement alter table ACT_RU_VARIABLE add column SCOPE_ID_ var ...
- 真实场景sql优化持续更新(老司机必备)
概述 下述场景,均来自实际产品线上经验,出于保密考量,所有需求场景都是仿造的,模拟遇到过的真实场景. 场景一: 统计数据(Order by 不具备唯一性导致的分页数据混乱) 需求 在实际业务场景中,我 ...
- VMware虚拟机---Ubuntu无法连接网络该怎么解决?
在学习使用Linux系统时,由于多数同学们的PC上多是Windows系统,故会选择使用VMware创建一个虚拟机来安装Linux系统进行学习. 安装完成之后,在使用时总是会遇到各种各样的问题.本片随笔 ...
- 2020-08-18:介绍下MR过程?
福哥答案2020-08-18:[来自[MapReduce执行过程及运行原理详解] 答案](https://www.panziye.com/bigdata/625.html)MapReduce执行的4个 ...
- 2021-01-09:linux中,某一个实时日志通过什么命令查?
福哥答案2020-01-09:[答案来自此链接:](https://www.zhihu.com/question/438536200)1.tailtail -f首先就是 tail -f,tail 命令 ...