Python 字典

一、一个简单的字典:

举个例子:

image.png

二、使用字典:

  • 在Python中,字典是一系列键值对。每个键都与一个值相关联,你可使用键来访问相关联的值。与键相关联的值可以是数、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。
  • 在Python中,字典用放在花括号({})中的一系列键值对表示,如前面的示例所示:

image.png

  • 键值对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键值对之间用逗号分隔。在字典中,想存储多少个键值对都可以。
  • 最简单的字典只有一个键值对,如下述修改后的字典alien_0所示:

image.png

  • 这个字典只存储了一项有关alien_0的信息,具体地说是这个外星人的颜色。在该字典中,字符串’color’是一个键,与之相关联的值为’green’。

访问字典中的值:

image.png

  • 上述代码首先定义了一个字典。然后,从这个字典中获取与键’points’相关联的值(见❶),并将这个值赋给变量new_points。
  • 接下来,将这个整数转换为字符串,并打印一条消息,指出玩家获得了多少分(见❷):

添加键值对:

  • 字典是一种动态结构,可随时在其中添加键值对。要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值。

image.png

  • 这个字典的最终版本包含四个键值对:原来的两个指定外星人的颜色和分数,而新增的两个指定其位置。

  • 注意:在Python 3.7中,字典中元素的排列顺序与定义时相同。如果将字典打印出来或遍历其元素,将发现元素的排列顺序与添加顺序相同。

先创建一个空字典:

  • 在空字典中添加键值对有时候可提供便利,而有时候必须这样做。
  • 为此,可先使用一对空花括号定义一个字典,再分行添加各个键值对。

image.png

修改字典中的值:

  • 要修改字典中的值,可依次指定字典名、用方括号括起的键,以及与该键相关联的新值。

image.png
image.png

这里更正书中的一处错误!

image.png
image.png
image.png

删除键值对:

  • 对于字典中不再需要的信息,可使用del语句将相应的键值对彻底删除。使用del语句时,必须指定字典名和要删除的键。

image.png

由类似对象组成的字典:

  • 字典存储的是一个对象(游戏中的一个外星人)的多种信息,但你也可以使用字典来存储众多对象的同一种信息。

image.png

  • 注意:对于较长的列表和字典,大多数编辑器提供了以类似方式设置格式的功能。对于较长的字典,还有其他一些可行的格式设置方式,因此在你的编辑器或其他源代码中,你可能会看到稍微不同的格式设置方式。

image.png

使用get()来访问值:

  • 使用放在方括号内的键从字典中获取感兴趣的值时,可能会引发问题:如果指定的键不存在就会出错。

  • 方法get()的第一个参数用于指定键,是必不可少的;第二个参数为指定的键不存在时要返回的值,是可选的:

image.png
image.png

  • 如果指定的键有可能不存在,应考虑使用方法get(),而不要使用方括号表示法。
  • 注意:调用get()时,如果没有指定第二个参数且指定的键不存在,Python将返回值None。这个特殊值表示没有相应的值。None并非错误,而是一个表示所需值不存在的特殊值,第8章将介绍它的其他用途。

三、遍历字典:

  • 一个Python字典可能只包含几个键值对,也可能包含数百万个键值对。鉴于字典可能包含大量数据,Python支持对字典进行遍历。字典可用于以各种方式存储信息,因此有多种遍历方式:可遍历字典的所有键值对,也可仅遍历键或值。

遍历所有键值对:

  • 探索各种遍历方法前,先来看一个新字典,它用于存储有关网站用户的信息。

image.png

四、嵌套:

字典列表:

  • 有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。
  • 你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。正如下面的示例将演示的,嵌套是一项强大的功能。

image.png
image.png

  • 鉴于要修改前三个外星人,我们遍历一个只包含这些外星人的切片。当前,所有外星人都是绿色的,但情况并非总是如此,因此编写一条if语句来确保只修改绿色外星人。
  • 如果外星人是绿色的,就将其颜色改为’yellow’,将其速度改为’medium’,并将其分数改为10,如下面的输出所示:

image.png
image.png

在字典中存储列表:

  • 每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
  • 在本章前面有关喜欢的编程语言的示例中,如果将每个人的回答都存储在一个列表中,被调查者就可选择多种喜欢的语言。在这种情况下,当我们遍历字典时,与每个被调查者相关联的都是一个语言列表,而不是一种语言;
  • 因此,在遍历该字典的for循环中,我们需要再使用一个for循环来遍历与被调查者相关联的语言列表:

image.png

  • 注意:列表和字典的嵌套层级不应太多。如果嵌套层级比前面的示例多得多,很可能有更简单的解决方案。

在字典中存储字典:

image.png

首先定义一个名为users的字典,其中包含两个键:用户名'aeinstein'和'mcurie'。
与每个键相关联的值都是一个字典,其中包含用户的名、姓和居住地。
在❶处,遍历字典users,让Python依次将每个键赋给变量username,并依次将与当前键相关联的字典赋给变量user_info。
在循环内部的❷处,将用户名打印出来。
在❸处,开始访问内部的字典。
变量user_info包含用户信息字典,而该字典包含三个键:'first'、'last'和'location'。对于每位用户,都使用这些键来生成整洁的姓名和居住地,然后打印有关用户的简要信息(见❹):

始访问内部的字典。
变量user_info包含用户信息字典,而该字典包含三个键:'first'、'last'和'location'。对于每位用户,都使用这些键来生成整洁的姓名和居住地,然后打印有关用户的简要信息(见❹):

各位路过的朋友,如果觉得可以学到些什么的话,点个赞 再走吧,欢迎各位路过的大佬评论,指正错误,也欢迎有问题的小伙伴评论留言,私信。

每个小伙伴的关注都是本人更新博客的动力!!!
请微信搜索【 在下小黄 】文章更新将在第一时间阅读 !
在这里插入图片描述

博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!


  • 12
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下小黄

ღ给个赞 是对小黄最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值