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 相关文章推荐
python3使用tkinter实现ui界面简单实例
Jan 10 Python
Python魔术方法详解
Feb 14 Python
python获取本机mac地址和ip地址的方法
Apr 29 Python
Python补齐字符串长度的实例
Nov 15 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
Python缓存技术实现过程详解
Sep 25 Python
Python enumerate内置库用法解析
Feb 24 Python
python实现批量转换图片为黑白
Jun 16 Python
python list的index()和find()的实现
Nov 16 Python
能让Python提速超40倍的神器Cython详解
Jun 24 Python
python实现简单的三子棋游戏
Apr 28 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中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
关于svn冲突的解决方法
2013/06/21 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
php二分查找二种实现示例
2014/03/12 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
PDO::rollBack讲解
2019/01/29 PHP
Ext 今日学习总结
2010/09/19 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
Python中Collection的使用小技巧
2014/08/18 Python
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
python学生管理系统代码实现
2020/04/05 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
伦敦著名的运动鞋综合商店:Footpatrol
2019/03/25 全球购物
Prototype如何更新局部页面
2013/03/03 面试题
三个Unix的命令面试题
2015/04/12 面试题
小兵张嘎观后感300字
2015/06/03 职场文书
高二化学教学反思
2016/02/22 职场文书