python字典通过值反查键的实现(简洁写法)


Posted in Python onSeptember 30, 2020

通过键查值比较容易,通过值反查键就稍微麻烦点,这里给大家提供点思路。 

由于值是可以重复的,所以分成两种情况给大家展示: 

第一种是值唯一的情况直接构造列表,通过value的索引取对应的key。 

第二种是值不唯一的情况,需要通过for遍历出所有的索引然后查出所有对应的key。

如果你需要打印所有满足查询值所对应的key,选第二种;

如果你只需要打印首次出现查询值所对应的key,选第一种。

代码如下:

#假如值唯一
mydisc = {'key1':'123', 'key2':'234', 'key3':'345'}
get_value = input('请输入要查值:')
if get_value in mydisc.values():
  print(list(mydisc.keys())[list(mydisc.values()).index(get_value)])
else:
  print('你要查询的值'+get_value+'不存在')
# 假如值不唯一
mydisc = {'key1':'123', 'key2':'234', 'key3':'345','key5':'123'}
get_value = input('请输入要查值:')
if get_value in mydisc.values():
  for a in range(0,len(mydisc)):
    if list(mydisc.values())[a]==get_value:
      print(list(mydisc.keys())[a])
else:
  print('你要查询的值'+get_value+'不存在')

有些同学对这段不理解

list(mydisc.keys())[list(mydisc.values()).index(get_value)]

我这里给大家解释下,为方便理解,我们拆解为

A[B.index(get_value)]
其中:
A=list(mydisc.keys())
B=list(mydisc.values()) 

知识点一:mydisc.keys()——取出字典mydisc的所有key

知识点二:list(list)——将list转化为列表,列表的好处就是有序,所以能通过list[index]取元素

所以A是将字典mydisc所有Key取出并用list()方法构建一个“键列表”,A=[‘key1', ‘key2', ‘key3']
同理B是将字典mydisc所有Value取出并用list()方法构建一个“值列表”,B=[123,234,345]
这个时候我们只需要知道get_value在B中的索引,然后找到A中对应索引的元素即可。

知识点三:list.index(x)——返回元素x在list中的索引(如果list中存在多个重复的x,会返回首次出现的索引)

所以B.index(get_value)的意思是返回get_value在B列表中的索引

知识点四:list[x]——取list中第x个元素的值

A[B.index(get_value)]就将get_value的键取出了。

这里是充分利用了列表的一些语法并糅合在一起,是一种简洁的通过值取键写法,仅供大家学习交流。

到此这篇关于python字典通过值反查键的实现(简洁写法)的文章就介绍到这了,更多相关python字典值反查键内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
如何运行Python程序的方法
Apr 21 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
python SMTP实现发送带附件电子邮件
May 22 Python
使用PyInstaller将python转成可执行文件exe笔记
May 26 Python
python实现各种插值法(数值分析)
Jul 30 Python
IronPython连接MySQL的方法步骤
Dec 27 Python
python基于opencv检测程序运行效率
Dec 28 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
解决Python spyder显示不全df列和行的问题
Apr 20 Python
python中加背景音乐如何操作
Jul 19 Python
python flask框架快速入门
May 14 Python
python中字典增加和删除使用方法
Sep 30 #Python
Scrapy爬虫文件批量运行的实现
Sep 30 #Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 #Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 #Python
python pip如何手动安装二进制包
Sep 30 #Python
python Matplotlib数据可视化(1):简单入门
Sep 30 #Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 #Python
You might like
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
PDO::rollBack讲解
2019/01/29 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
使用js在layui中实现上传图片压缩
2019/06/18 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
详解vue 组件注册
2020/11/20 Vue.js
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
python将字典内容存入mysql实例代码
2018/01/18 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
鼓励运动员的广播稿
2014/02/08 职场文书
小学生暑假家长评语
2014/04/17 职场文书
安全生产月活动总结
2014/05/04 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
先进学校事迹材料
2014/12/30 职场文书
领导欢迎词致辞
2015/01/23 职场文书
异地恋情人节寄语
2015/02/28 职场文书
幼儿园六一主持词
2015/06/30 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python