Python入门(八)字典(一)

news2025/2/27 17:21:43

字典(一)

  • 1.字典概述
  • 2.一个简单的字典
  • 3.使用字典
    • 3.1 访问字典中的值
    • 3.2添加键值对
    • 3.3 先创建一个空字典
    • 3.4 修改字典中的值
    • 3.5 删除键值对

作者:xiou

1.字典概述

在本章中,你将学习能够将相关信息关联起来的Python字典,以及如何访问和修改字典中的信息。字典可存储的信息量几乎不受限制,因此我们会演示如何遍历字典中的数据。另外,你还将学习存储字典的列表、存储列表的字典和存储字典的字典。

理解字典后,就能够更准确地为各种真实物体建模。你可以创建一个表示人的字典,然后想在其中存储多少信息就存储多少信息:姓名、年龄、地址、职业,以及能描述他的任何方面。你还能够存储任意两种相关的信息,如一系列单词及其含义,一系列人名及其喜欢的数,以及一系列山脉及其海拔,等等。

2.一个简单的字典

来看一个包含外星人的游戏,这些外星人的颜色和分数各不相同。下面是一个简单的字典,存储了有关特定外星人的信息:

alien_0 = {'color': 'green', 'points': 5}

print(alien_0['color'])
print(alien_0['points'])

字典alien_0存储了外星人的颜色和分数。最后两行代码访问并显示这些信息,结果如下:

在这里插入图片描述

与大多数编程概念一样,要熟练使用字典,也需要一段时间的练习。使用字典一段时间后,你就会明白为何它们能够高效地模拟现实世界中的情形。

3.使用字典

在Python中,字典是一系列键值对。每个键都与一个值相关联,你可使用键来访问相关联的值。与键相关联的值可以是数、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。

在Python中,字典用放在花括号({})中的一系列键值对表示,如前面的示例所示:

alien_0 = {'color': 'green', 'points': 5}

键值对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键值对之间用逗号分隔。在字典中,想存储多少个键值对都可以。

最简单的字典只有一个键值对,如下述修改后的字典alien_0所示:

alien_0 = {'color': 'green'}

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

3.1 访问字典中的值

要获取与键相关联的值,可依次指定字典名和放在方括号内的键,如下所示:

alien_0 = {'color': 'green'}
print(alien_0['color'])

将返回字典alien_0中与键’color’相关联的值:

在这里插入图片描述

字典中可包含任意数量的键值对。例如,下面是最初的字典alien_0,其中包含两个键值对:

alien_0 = {'color': 'green', 'points': 5}

现在,你可访问外星人alien_0的颜色和分数。如果玩家射杀了这个外星人,就可以使用下面的代码来确定应获得多少分:

  alien_0 = {'color': 'green', 'points': 5}

  new_points = alien_0['points']
  print(f"You just earned {new_points} points!")

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

在这里插入图片描述

如果在外星人被射杀时运行这段代码,就将获取该外星人的分数。

3.2添加键值对

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

下面来在字典alien_0中添加两项信息:外星人的x坐标和y坐标,让我们能够在屏幕的特定位置显示该外星人。我们将这个外星人放在屏幕左边缘,且离屏幕顶部25像素的地方。由于屏幕坐标系的原点通常为左上角,要将该外星人放在屏幕左边缘,可将x坐标设置为0;要将该外星人放在离屏幕顶部25像素的地方,可将y坐标设置为25,如下所示:

  alien_0 = {'color': 'green', 'points': 5}
  print(alien_0)

  alien_0['x_position'] = 0
  alien_0['y_position'] = 25
  print(alien_0)

首先定义前面一直在使用的字典,然后打印这个字典,以显示其信息快照。我们在这个字典中新增了一个键值对,其中的键为’x_position’,值为0。重复这样的操作,但使用的键为’y_position’。打印修改后的字典时,将看到这两个新增的键值对:

在这里插入图片描述

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

3.3 先创建一个空字典

在空字典中添加键值对有时候可提供便利,而有时候必须这样做。为此,可先使用一对空花括号定义一个字典,再分行添加各个键值对。例如,下面演示了如何以这种方式创建字典alien_0:

alien_0 = {}

alien_0['color'] = 'green'
alien_0['points'] = 5

print(alien_0)

这里首先定义了空字典alien_0,再在其中添加颜色和分数,得到前述示例一直在使用的字典:

在这里插入图片描述

使用字典来存储用户提供的数据或在编写能自动生成大量键值对的代码时,通常需要先定义一个空字典。

3.4 修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键,以及与该键相关联的新值。例如,假设随着游戏的进行,需要将一个外星人从绿色改为黄色:

alien_0 = {'color': 'green'}
print(f"The alien is {alien_0['color']}.")

alien_0['color'] = 'yellow'
print(f"The alien is now {alien_0['color']}.")

首先定义一个表示外星人alien_0的字典,其中只包含这个外星人的颜色。接下来,将与键’color’相关联的值改为’yellow’。输出表明,这个外星人确实从绿色变成了黄色:

在这里插入图片描述

来看一个更有趣的例子,对一个能够以不同速度移动的外星人进行位置跟踪。

3.5 删除键值对

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

例如,下面的代码从字典alien_0中删除键’points’及其值:

  alien_0 = {'color': 'green', 'points': 5}
  print(alien_0)

  del alien_0['points']
  print(alien_0)

代码行让Python将键’points’从字典alien_0中删除,同时删除与这个键相关联的值。输出表明,键’points’及其值5已从字典中删除,但其他键值对未受影响:
在这里插入图片描述

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

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

相关文章

二叉排序树查找成功和不成功的平均查找长度

理解二叉树的特性: 1)结点:包含一个数据元素及若干指向子树分支的信息。 2)结点的度:一个结点拥有子树的数据成为结点的度。 3)叶子结点:也称为终端结点,没有子树的结点或者度为零的结点。 4)分支结点:也称为非终端结点,度不为零的结点成为非终端结点。 5)结点…

视觉检测设备主要有哪几分类

在如今的工业4.0时代,整个行业都在加速智能制造的脚步,此时我们就不得不说其其中重要的环节——视觉检测,本身其只是属于机器视觉中一个应用的分支,但是因其应用广泛,久而久之很多工厂行业的从业者在遇到需要外观检测问…

GDB 的简单使用

GDB 的简单使用 一、启动调试二、常用调试命令1.list(显示程序源代码)2.break、tbreak、delete、disable、enable 和 info break(断点操作)3.run(运行源程序)4.next 和 step(单步调试&#xff0…

大型语言模型 (LLM) 的两条发展路线:Finetune v.s. Prompt

前言 如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 在大型语言模型的研究中,研究者对其有两种不同的期待,也可以理解为是两种不同的路线,具…

【LeetCode: 494. 目标和 | 暴力递归=>记忆化搜索=>动态规划 | 背包模型】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【Spring框架三】——Spirng IOC和DI的实现

系列文章目录 【Spring框架一】——Spring框架简介 Spirng IOC和DI的实现 系列文章目录前言一、IDEA新建Spring 项目二、使用XML文件的方式实现IOC和DI1.创建XML文件2. 通过构造函数的方式进行注入运行结果3.setter方法进行注入 三、使用注解的方式实现IOC和DISpring 5中的常用…

Django SQL注入漏洞 CVE-2022-28346

漏洞简介 Django 在2022年发布的安全更新&#xff0c;修复了在 QuerySet 的 annotate()&#xff0c; aggregate()&#xff0c; extra() 等函数中存在的 SQL 注入漏洞。 影响版本 2.2< Django Django <2.2.283.2< Django Django <3.2.134.0< Django Django <4…

Hadoop 4:Hive

数据仓库概念 数据仓库&#xff08;英语&#xff1a;Data Warehouse&#xff0c;简称数仓、DW&#xff09;,是一个用于存储、分析、报告的数据系统。 数据仓库的目的是构建面向分析的集成化数据环境&#xff0c;分析结果为企业提供决策支持&#xff08;Decision Support&#x…

新版Mamba体验超快的软件安装

在一文掌握Conda软件安装&#xff1a;虚拟环境、软件通道、加速solving、跨服务器迁移中详细介绍的conda的基本使用和遇到问题的解决方式&#xff0c;也提到了mamba作为一个替代工具&#xff0c;可以很好的加速conda的solving environemnt过程。但有时也会遇到一个很尴尬的问题…

苹果笔要不要买?apple pencil的平替笔推荐

第一款ipad在10年前就已经出现了&#xff0c;它被用作平板电脑&#xff0c;功能非常强大。而现在&#xff0c;ipad的产品型号更新速度&#xff0c;也让ipad变得更加受欢迎。在这些设备中&#xff0c;ipad的辅助配件扮演着重要角色&#xff0c;比如今天我们要讲的这款电容笔&…

【LeetCode】《LeetCode 101》第八章:分治法

文章目录 8.1 算法解释8.2 表达式问题241. 为运算表达式设计优先级&#xff08;中等&#xff09;932. 漂亮数组&#xff08;中等&#xff09;312. 戳气球&#xff08;困难&#xff09; 8.1 算法解释 分治问题 通过「把原问题分为子问题&#xff0c;再将子问题进行合并处理」&a…

伙伴匹配推荐接口的优化策略【优先队列+多线程分批处理,java实现】

文章目录 接口背景接口问题说明优化策略用户匹配度计算接口改进与测试说明改进前改进一&#xff08;使用优先队列存储编辑距离较小的n个元素&#xff09;改进二&#xff08;使用优先队列存储编辑距离较小的n个元素数据分批查询、分批处理&#xff09;改进三&#xff08;使用优先…

算法修炼之练气篇——练气十九层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

互联网本来很简单,但为啥人们看的那么复杂

昨天有朋友问我互联网&#xff0c;说互联网怎么怎么创新。 我说你看到的都是像。佛说佛有十万身。这都是像&#xff0c;不是相。 &#xff08;1&#xff09; 500多年前&#xff0c;意大利美第奇家族为了给教皇运送全欧洲信民们的捐赠&#xff0c;所以建立了一张天网一张地网。天…

VMware 产品下载汇总 2023 持续更新中

本站 VMware 产品下载汇总&#xff1a;vSphere、NSX、Tanzu、Aria、Cloud… 请访问原文链接&#xff1a;https://sysin.org/blog/vmware/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 本站提供的 VMware 软件全部为 “试用版…

ENVI无缝镶嵌Seamless Mosaic工具镶嵌、拼接栅格遥感影像(所有图像需要含有地理信息)

本文介绍基于ENVI软件&#xff0c;利用“Seamless Mosaic”工具实现栅格遥感影像无缝镶嵌的操作。 在ENVI软件中通过“Pixel Based Mosaicking”工具实现栅格遥感影像的镶嵌的方法。这一工具虽然可以对不含有地理参考信息的遥感影像进行镶嵌&#xff0c;但是其镶嵌的整体效果并…

数据分析利器之python、IT应用架构规划详解(195页)、600多个人工智能AI工具汇总、营销革命5.0…| 本周精华...

▲点击上方卡片关注我&#xff0c;回复“8”&#xff0c;加入数据分析领地&#xff0c;一起学习数据分析&#xff0c;持续更新数据分析学习路径相关资料~&#xff08;精彩数据观点、学习资料、数据课程分享、读书会、分享会等你一起来乘风破浪~&#xff09;回复“小飞象”&…

Halcon 阈值分割(全局阈值threshold、binary_threshold、动态阈值 dyn_threshold)、直方图

文章目录 1 图像直方图2 全局阈值 threshold()3 binary_threshold()4 动态阈值mean_image() + dyn_threshold()5 代码和原图1 图像直方图 图像直方图(Image Histogram)是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素个数。 这种直方图中,横坐标的左…

后端返回文件流时,前端如何处理并成功下载流文件以及解决下载后打开显示不支持此文件格式

一、文件和流的关系 文件&#xff08;File&#xff09;和流(Stream)是既有区别又有联系的两个概念。 文件 是计算机管理数据的基本单位&#xff0c;同时也是应用程序保存和读取数据的一个重要场所。 存储介质&#xff1a;文件是指在各种存储介质上&#xff08;如硬盘、可…

WPF 使用 MaterialDesignThemes 项目Demo

前言&#xff1a; 最近在学B站的WPF项目实战合集(2022终结版)&#xff0c;但是到22P时候发现UI框架 MaterialDesignThemes的Github上面的程序没办法正常运行&#xff0c;最后折腾了好久终于解决。 github地址 gitcode镜像地址 下载成功后 下载成功后是如下效果 打开这个文…