通过键查值比较容易,通过值反查键就稍微麻烦点,这里给大家提供点思路。
由于值是可以重复的,所以分成两种情况给大家展示:
第一种是值唯一的情况直接构造列表,通过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的键取出了。
这里是充分利用了列表的一些语法并糅合在一起,是一种简洁的通过值取键写法,仅供大家学习交流。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]