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中逗号的三种作用实例分析
Jun 08 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
Jan 20 Python
以一个投票程序的实例来讲解Python的Django框架使用
Feb 18 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
对python中的for循环和range内置函数详解
Apr 17 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
Python使用Matlab命令过程解析
Jun 04 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
Python爬虫爬取ts碎片视频+验证码登录功能
Feb 22 Python
python套接字socket通信
Apr 01 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
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
使用js判断控件是否获得焦点
2014/01/03 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python流程控制 if else实现解析
2019/09/02 Python
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
啤酒销售实习自我鉴定
2013/09/24 职场文书
室内设计自我鉴定
2013/10/15 职场文书
学校联谊活动方案
2014/02/15 职场文书
行政副总岗位职责
2014/02/23 职场文书
美容院营销方案
2014/03/05 职场文书
答谢会策划方案
2014/05/12 职场文书
法院信息化建设方案
2014/05/21 职场文书
会计求职信范文
2014/05/24 职场文书
学习退步检讨书
2014/09/28 职场文书
商务英语求职信范文
2015/03/19 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python