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 thread 并发且顺序运行示例
Apr 09 Python
Python网络爬虫中的同步与异步示例详解
Feb 03 Python
Python编程argparse入门浅析
Feb 07 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
Python小工具之消耗系统指定大小内存的方法
Dec 03 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 Python
python基于Selenium的web自动化框架
Jul 14 Python
用Python批量把文件复制到另一个文件夹的实现方法
Aug 16 Python
Django import export实现数据库导入导出方式
Apr 03 Python
调整Jupyter notebook的启动目录操作
Apr 10 Python
Python数据分析入门之教你怎么搭建环境
May 13 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
人族 TERRAN 概述
2020/03/14 星际争霸
CI框架中zip类应用示例
2014/06/17 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
2019/12/20 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
django框架cookie和session用法实例详解
2019/12/10 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
python实现邮件循环自动发件功能
2020/09/11 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
学生不讲诚信检讨书
2014/09/29 职场文书
投诉信回复范文
2015/07/03 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
小学数学教学随笔
2015/08/14 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
z-index不起作用
2021/03/31 HTML / CSS