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 相关文章推荐
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
python3.6+django2.0+mysql搭建网站过程详解
Jul 24 Python
python框架django项目部署相关知识详解
Nov 04 Python
Tensorflow之梯度裁剪的实现示例
Mar 08 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
Apr 27 Python
python 带时区的日期格式化操作
Oct 23 Python
Python页面加载的等待方式总结
Feb 28 Python
Python数据分析入门之数据读取与存储
May 13 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 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 读取shell管道传输过来的内容
2010/03/01 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
简单的JS多重继承示例
2008/03/13 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
jQuery中:checked选择器用法实例
2015/01/04 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
JS获取表格视图所选行号的ids过程解析
2020/02/21 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
python 变量初始化空列表的例子
2019/11/28 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
python Matplotlib数据可视化(1):简单入门
2020/09/30 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
学校标语大全
2014/06/19 职场文书
校庆团日活动总结
2014/08/28 职场文书
个人授权委托书范文
2014/09/21 职场文书
新闻人物通讯稿
2014/10/09 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
详解Javascript实践中的命令模式
2021/05/05 Javascript