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代码使其加快作用域内的查找
Mar 30 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
浅谈python中copy和deepcopy中的区别
Oct 23 Python
Python对多属性的重复数据去重实例
Apr 18 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
May 10 Python
python 字符串只保留汉字的方法
Nov 16 Python
python 读取鼠标点击坐标的实例
Dec 29 Python
Python进程间通信Queue消息队列用法分析
May 22 Python
python matplotlib中的subplot函数使用详解
Jan 19 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 Python
Python如何将将模块分割成多个文件
Aug 04 Python
Python 操作SQLite数据库的示例
Oct 16 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
删除数组元素实用的PHP数组函数
2008/08/18 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
JAVASCRIPT keycode总结
2009/02/04 Javascript
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
2016/09/08 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
python实现复制整个目录的方法
2015/05/12 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python scipy卷积运算的实现方法
2019/09/16 Python
python属于软件吗
2020/06/18 Python
python cookie反爬处理的实现
2020/11/01 Python
节能减排倡议书
2014/04/15 职场文书
商业街策划方案
2014/05/31 职场文书
离婚律师函范本
2015/05/27 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
Win11查看设备管理器
2022/04/19 数码科技