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爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
Python序列化基础知识(json/pickle)
Oct 19 Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 Python
pycharm 配置远程解释器的方法
Oct 28 Python
简单了解python变量的作用域
Jul 30 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
Python基于locals返回作用域字典
Oct 17 Python
Python排序函数的使用方法详解
Dec 11 Python
Python中22个万用公式的小结
Jul 21 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基础学习小结
2011/04/17 PHP
php更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
用JAVASCRIPT如何给<textarea></textarea>赋值
2007/04/20 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
js转html实体的方法
2016/09/27 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
wxpython 学习笔记 第一天
2009/03/16 Python
用Python抢过年的火车票附源码
2015/12/07 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
Python实现DDos攻击实例详解
2019/02/02 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
工厂保洁员岗位职责
2013/12/04 职场文书
暑期社会实践感言
2014/02/25 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
目标责任书格式范文
2015/05/11 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python