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中的__init__()方法
May 02 Python
用python做一个搜索引擎(Pylucene)的实例代码
Jul 05 Python
Python方法的延迟加载的示例代码
Dec 18 Python
Python pymongo模块用法示例
Mar 31 Python
python将txt文件读取为字典的示例
Dec 22 Python
Python基于plotly模块实现的画图操作示例
Jan 23 Python
树莓派动作捕捉抓拍存储图像脚本
Jun 22 Python
Django如何简单快速实现PUT、DELETE方法
Jul 24 Python
Django 通过JS实现ajax过程详解
Jul 30 Python
python实现输入的数据在地图上生成热力图效果
Dec 06 Python
Django的CVB实例详解
Feb 10 Python
Flask处理Web表单的实现方法
Jan 31 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缓存技术的多种方法小结
2012/08/14 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
php实现文件下载实例分享
2014/06/02 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
laravel 数据验证规则详解
2019/10/23 PHP
javascript读取xml
2006/11/04 Javascript
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
学习Vue组件实例
2018/04/28 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
python中的随机函数random的用法示例
2018/01/27 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
python截取两个单词之间的内容方法
2018/12/25 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
室内设计专业个人的自我评价
2013/10/19 职场文书
个人自荐书
2013/12/20 职场文书
《画》教学反思
2014/04/14 职场文书
健康状况证明书
2014/11/26 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript