当前位置: 首页 > news >正文

通过键值对访问字典

自学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.lryc.cn/news/355147.html

相关文章:

  • 海外仓扫码管理系统怎么选?精准,高效管理需求才是核心需求
  • 基于51单片机的智能灯光控制系统
  • 测试开发面试题
  • 多线程JUC 第2季 BlockingQueue 阻塞队列
  • 【MySQL精通之路】全文搜索(3)-带查询扩展的全文搜索
  • 【面试必看】Java并发
  • C++的第一道门坎:类与对象(一)
  • 经典面试题:MySQL如何调优?
  • 【程序员如何送外卖】
  • 【git pull 和 push详解】
  • 数据挖掘导致直接路径读(direct path read)耗尽了IO
  • 用队列实现栈 用栈实现队列 设计循环队列
  • BFS解决最短路问题(详解)
  • 按尺寸筛选轮廓图中的轮廓
  • VBA高级应用30例:实现在列表框内及列表框间实现数据拖动
  • 「AIGC算法」R-tree算法
  • 2024软考上半年嵌入式系统设计师考试回顾
  • MIT6.828 Lab2-1 Using gdb
  • mysqldump提示Using a password on the command line interface can be insecured的解决办法
  • Java毕业设计 基于springboot vue考勤管理系统
  • C数据结构:二叉树
  • 使用Nginx作为反向代理实现MQTT内外网通信
  • SpringBoot 上传文件示例
  • 9.js函数
  • 关于数据库和数据表的基础SQL
  • 【C语言深度解剖】(14):结构体内存对齐(详细配图讲解)
  • 学习笔记:C语言的32个关键字
  • 嵌入式学习 (Day:27 IPC --- 进程间通信)
  • Python考试复习--day2
  • 整理好了!2024年最常见 20 道 Redis面试题(九)