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入门之三角函数tan()函数实例详解
Nov 08 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
python中set()函数简介及实例解析
Jan 09 Python
django 删除数据库表后重新同步的方法
May 27 Python
对python Tkinter Text的用法详解
Oct 11 Python
python 自定义对象的打印方法
Jan 12 Python
详解pytorch 0.4.0迁移指南
Jun 16 Python
Python单元测试模块doctest的具体使用
Feb 10 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
pytorch 中autograd.grad()函数的用法说明
May 12 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 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
多重?l件?合查?(一)
2006/10/09 PHP
用header 发送cookie的php代码
2007/03/16 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
基于jquery实现省市联动特效
2015/12/17 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
2018/07/31 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
Python排序算法实例代码
2017/08/10 Python
python如何在循环引用中管理内存
2018/03/20 Python
解析python实现Lasso回归
2019/09/11 Python
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
Jones New York官网:美国女装品牌,受白领女性欢迎
2019/11/26 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
社区工作者先进事迹
2014/01/18 职场文书
小学教师培训感言
2014/02/11 职场文书
司法建议书范文
2014/05/13 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
担保书格式范文
2015/09/22 职场文书
《假如》教学反思
2016/02/17 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
Python自动化测试PO模型封装过程详解
2021/06/22 Python