通过键值对访问字典

news2024/11/13 7:53:39

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

在Python中,如果想将字典的内容输出也比较简单,可以直接使用print()函数。例如,要想打印dictionary字典,则可以使用下面的代码:

name = ['绮梦','冷伊一','香凝','黛兰']            # 作为键的列表

sign = ['水瓶座','射手座','双鱼座','双子座']          # 作为值的列表

dictionary = dict(zip(name,sign))                # 转换为字典

print(dictionary)

执行结果如下:

{'绮梦': '水瓶座', '冷伊一': '射手座', '香凝': '双鱼座', '黛兰': '双子座'}

但是,在使用字典时,很少直接输出它的内容。一般需要根据指定的键得到相应的结果。在Python中,访问字典的元素可以通过下标的方式实现,与列表和元组不同,这里的下标不是索引号,而是键。例如,想要获取“冷伊一”的星座,可以使用下面的代码:

print(dictionary['冷伊一'])

执行结果如下:

射手座

在使用该方法获取指定键的值时,如果指定的键不存在,就会抛出如图25所示的异常。

图25  获取指定键不存在时抛出异常

在实际开发中,我们可能不知道当前存在什么键,所以需要避免该异常的产生。具体的解决方法是使用if语句对不存在的情况进行处理,即设置一个默认值。例如,可以将上面的代码修改为以下内容:

print("冷伊的星座是:",dictionary['冷伊'] if '冷伊' in dictionary else '我的字典里没有此人')

当“冷伊”不存在时,将显示以下内容:

冷伊的星座是:我的字典里没有此人

另外,Python中推荐的方法是使用字典对象的get()方法获取指定键的值,语法格式如下:

dictionary.get(key[,default])

参数说明:

l  dictionary:为字典对象,即要从中获取值的字典。

l  key:为指定的键。

l  default:为可选项,用于指定当指定的“键”不存在时,返回一个默认值,如果省略,则返回None。

例如,通过get()方法获取“冷伊一”的星座,可以使用下面的代码:

print("冷伊一的星座是:",dictionary.get('冷伊一'))

执行结果如下:

冷伊一的星座是: 射手座

说明:为了解决在获取指定键的值时,因不存在该键而导致抛出异常,可以为get()方法设置默认值,这样当指定的键不存在时,得到结果就是指定的默认值。例如,将上面的代码修改为以下内容。

print("冷伊的星座是:",dictionary.get('冷伊','我的字典里没有此人'))

将得到以下结果:

冷伊的星座是: 我的字典里没有此人

场景模拟:将某大学寝室里的4位美女的名字和星座保存在一个字典里,然后再定义一个保存各个星座性格特点的字典,根据这两个字典获取某位美女的性格特点。

图标 (35)

  实例10  根据星座测试性格特点

在IDLE中创建一个名称为sign_get.py的文件,然后在该文件中创建两个字典,一个保存名字和星座,另一个保存星座和性格特点,最后从这两个字典中取出相应的信息组合出想要的结果,并输出,代码如下:

name = ['绮梦','冷伊一','香凝','黛兰']                               # 作为键的列表

sign_person = ['水瓶座','射手座','双鱼座','双子座']                 # 作为值的列表

person_dict = dict(zip(name,sign_person))                    # 转换为个人字典

sign_all =['白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座','摩羯座','水瓶座','双鱼座']

nature = ['有一种让人看见就觉得开心的感觉,阳光、乐观、坚强,性格直来直去,就是有点小脾气。',

          '很保守,喜欢稳定,一旦有什么变动就会觉得心里不踏实,性格比较慢热,是个理财高手。',

          '喜欢追求新鲜感,有点小聪明,耐心不够,因你的可爱性格会让很多人喜欢和你做朋友。',

          '情绪容易敏感,缺乏安全感,做事情有坚持到底的毅力,为人重情重义,对朋友和家人特别忠实。',

          '有着远大的理想,总想靠自己的努力成为人上人,总是期待被仰慕被崇拜的感觉。',

          '坚持追求自己的完美主义者。',

          '追求平等、和谐,交际能力强,因此朋友较多。最大的缺点就是面对选择总是犹豫不决。',

          '精力旺盛,占有欲强,对于生活很有目标,不达目的誓不罢休,复仇心重。',

          '崇尚自由,勇敢、果断、独立,身上有一股勇往直前的劲儿,只要想做,就能做。',

          '是最有耐心的,做事最小心。做事脚踏实地,比较固执,不达目的不罢休,而且非常勤奋。',

          '人很聪明,最大的特点是创新,追求独一无二的生活,个人主义色彩很浓重的星座。',

          '集所有星座的优缺点于一身。最大的优点是有一颗善良的心,愿意帮助别人。']

sign_dict = dict(zip(sign_all,nature))                                  # 转换为星座字典

print("【香凝】的星座是",person_dict.get("香凝"))                         # 输出星座

print("\n 她的性格特点是:\n\n",sign_dict.get(person_dict.get("香凝")))    # 输出性格特点

运行实例后,将显示如图26所示的结果。

图26  输出某个人的星座和性格特点

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

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

相关文章

10.SpringBoot 统一处理功能

文章目录 1.拦截器1.1在代码中的应用1.1.1定义拦截器1.1.2注册配置拦截器 1.2拦截器的作用1.3拦截器的实现 2.统一数据返回格式2.1 为什么需要统⼀数据返回格式?2.2 统⼀数据返回格式的实现 3.统一异常处理4.SpringBoot专业版创建项目无Java8版本怎么办?…

Java后端面经

1.可重复读,已提交读,这两个隔离级别表现的现象是什么,区别是什么样的? 可重复读:表示整个事务看到的事务和开启后的事务能看到的数据是一致的,既然数据是一致的,所以不存在不可重复读。而且不…

Word整理论文参考文献

1.安装Zotero软件 2.安装Zotero的Chrome网站插件,并将插件固定到浏览器 3.安装Word的Zotero插件 4.在DBLP网站https://dblp.org/search 搜索需要添加的参考文献->点击BibTex->点击网页右上角的Zotero符号(即第二步所指的符号)->至…

雷军-2022.8小米创业思考-9-爆品模式:产品力超群,具有一流口碑,最终实现海量长销的产品。人人都向往;做减法;重组创新;小白模式

第九章 爆品模式 小米方法论的第三个关键词,就是一切以产品为出发点,打造爆品模式。 大多数人对“爆品”的着眼点仅在于“爆”,也就是产品卖得好。希望产品大卖这没有错,但是“爆”是“品”的结果,爆品是打造出来的&…

Revit的特性 - 族类型和族实例、联动更新

Revit 模型的表示方式 Revit 是 Autodesk 推出的一款建筑建模软件,主要应用于建筑信息模型(Building Information Modeling,简称BIM)领域。Revit发布至今已经超过20年,他的核心理念是以族的概念来表达建筑模型。 在Re…

图生文模型llava

llava-llama-3-8b-v1_1 是一个 LLaVA 模型,由 XTuner 使用 ShareGPT4V-PT 和 InternVL-SFT 从 meta-llama/Meta-Llama-3-8B-Instruct 和 CLIP-ViT-Large-patch14-336 进行微调。 https://huggingface.co/xtuner/llava-llama-3-8b-v1_1-gguf

Pencils Protocol与Trust 钱包联合活动,参与瓜分超$200K的奖励

实现全新品牌升级的 Pencils Protocol 目前已经结束了 Season 2,并进入到了 Season 3 阶段,目前用户可以通过 Pencils Protocol 的 Staking 池来获得超过 APR 收益的同时,还能获得多重积分奖励。 而在 Season 3 阶段,为了进一步促…

使用 Django ORM 进行数据库操作

文章目录 创建Django项目和应用定义模型查询数据更新和删除数据总结与进阶聚合和注解跨模型查询原始SQL查询 Django是一个流行的Web应用程序框架,它提供了一个强大且易于使用的对象关系映射(ORM)工具,用于与数据库进行交互。在本文…

微信小程序图片懒加载如何实现?

微信小程序开发时,对于有图片的列表在加载时,为了用户体验更好,必需要对图片做懒加载。 如下图所示,页面在打开时,图片会按需加载,这样用户体验没有那么生硬。 以下将介绍图片懒加载的步骤: 1.…

ssh远程连接的相关配置

连接同一个局域网下: 正好这里来理解一下计算机网络配置中的ip地址配置细节, inet 172.20.10.13: 这是主机的IP地址,用于在网络中唯一标识一台设备。在这个例子中,IP地址是172.20.10.13。 netmask 255.255.255.240: 这是子网掩码…

【软件设计师】——7.软件工程基础

目录 7.1 软件工程概述 7.2 需求分析 7.3 软件设计 7.4 软件开发方法及模型 7.4.1 软件开发方法 7.4.2 软件开发模型 7.5 软件测试 7.6 软件维护 7.7 软件质量保证 7.7.1 软件质量特性 7.7.2 程序质量评审 7.7.3 设计质量评审 7.8 软件过程改进 7.9 项目管理 7.1 …

文献分享《Microbiome and cancer》

人类微生物群构成了一个复杂的多王国群落,与宿主在多个身体部位共生相互作用。宿主-微生物群的相互作用影响多 种生理过程和各种多因素的疾病条件。在过去的十年中,微生物群落被认为会影响多种癌症类型的发展、进展、转移 形成和治疗反应。虽然微生物对癌…

PyQt5-新手避坑指南(持续更新)

文章目录 一.前言二.开发环境三.坑1.程序没有详细报错就退出了2.qrc资源文件的使用3.QLabel文字自动换行4.图片自适应大小5.checkbox自定义样式后✓不见了6.多线程 四.记录 一.前言 本篇博客整理了一些初学者容易犯的…

BFS解决最短路问题(详解)

目录 BFS简介 && 框架: 一.二叉树的最小深度 二:迷宫中里入口最近的出口: 三.最小基因变化: 四:单词接龙: ​五:为高尔夫比赛砍树: BFS简介 && 框架: 说到BFS…

常见API(JDK7时间、JDK8时间、包装类、综合练习)

一、JDK7时间——Date 1、事件相关知识点 2、Date时间类 Data类是一个JDK写好的Javabean类,用来描述时间,精确到毫秒。 利用空参构造创建的对象,默认表示系统当前时间。 利用有参构造创建的对象,表示指定的时间。 练习——时间计…

【LeetCode】力扣第 399 场周赛 优质数对的总数 II

文章目录 1. 优质数对的总数 II 1. 优质数对的总数 II 题目链接 🍎该题涉及的小技巧:🐥 🐧①一次可以统计这个数的 两个因子 但是要注意 25 5 * 5,这种情况 5 只能统计一次噢🆒 解题思路: &#x1f427…

springboot 集成 es--未完结

基于es7.10.x版本 一、前提知识 常见的两种方式:spring boot提供的API 和 ES 官方提供的API ES官方: RestHighLevelClient: 适用于复杂、更细粒度控制的Elasticsearch 操作 spring boot: ElasticsearchRestTemplate&#xff1a…

【软件设计师】——8.结构化与数据流图

目录 8.1 结构化分析 8.2 结构化设计 8.3 数据流图DFD 8.4 数据字典 8.1 结构化分析 结构化分析是面向数据流进行需求分析的方法,采用结构化方法进行系统分析时,根据分解与抽象原则,按照系统中数据处理的流程,用(数…

211大学计算机专业不考408,新增的交叉专业却考408!南京农业大学计算机考研考情分析!

南京农业大学信息科技学院可追溯至1981年成立的计算中心和1985年筹建的农业图书情报专业。1987年设立了农业图书情报系,1993 年农业图书情报系更名为信息管理系,本科专业名称也于1999年更名为信息管理与信息系统专业。1994年计算中心开始招收计算机应用专…

三十篇:动脉脉搏:企业业务处理系统的生命力

动脉脉搏:企业业务处理系统的生命力 1. 引言 在数字经济的浪潮下,企业之间的竞争已不仅仅是产品和服务的竞争,更是信息处理能力的竞争。业务处理系统(Transaction Processing System, TPS)是企业信息系统架构的基础&a…