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使用递归解决全排列数字示例
Feb 11 Python
python查找目录下指定扩展名的文件实例
Apr 01 Python
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
人生苦短我用python python如何快速入门?
Mar 12 Python
Python中的CSV文件使用"with"语句的方式详解
Oct 16 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
详解pandas中MultiIndex和对象实际索引不一致问题
Jul 23 Python
Django 创建新App及其常用命令的实现方法
Aug 04 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
Keras使用ImageNet上预训练的模型方式
May 23 Python
python实现录音功能(可随时停止录音)
Oct 26 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上传图片、删除图片实现代码
2010/05/12 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
PHP pear安装配置教程
2016/05/14 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
用vue设计一个日历表
2020/12/03 Vue.js
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
速记Python布尔值
2017/11/09 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
个人自荐信
2013/12/05 职场文书
餐饮业创业计划书范文
2014/01/06 职场文书
大学生党员自我评价范文
2014/04/09 职场文书
组工干部对照检查材料
2014/08/25 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
面试复试通知单
2015/04/24 职场文书
唐山大地震观后感
2015/06/05 职场文书
工作感言一句话
2015/08/01 职场文书
Nginx的基本概念和原理
2022/03/21 Servers
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android