请求拆解Python字典根据值获取键的代码逻辑
按值查找字典键的代码拆解解释
先看完整代码:
mydict = {'george': 16, 'amber': 19} print(list(mydict.keys())[list(mydict.values()).index(16)])
第一行:定义字典
mydict = {'george': 16, 'amber': 19}
这行就是创建一个名为mydict的字典,字典是Python里存储键值对的集合,这里'george'和'amber'是键,对应的16和19是值。
第二行:核心查找逻辑拆解
这行代码把“根据值找键”的操作拆成了几个步骤,咱们一步步拆:
获取值列表并定位目标值的索引:
list(mydict.values()).index(16)mydict.values():获取字典里所有的值,Python3里它返回的是一个值视图对象(不是直接的列表),所以用list()把它转成列表,结果是[16, 19]。.index(16):在这个值列表里查找16的位置(索引),列表索引从0开始,所以16对应的索引是0。
获取键列表并按索引取值:
list(mydict.keys())mydict.keys():和上面类似,获取字典里所有的键,转成列表后是['george', 'amber']。- 用前面得到的索引
0去取这个键列表的元素,就得到了'george'。
打印结果:最后
print()把找到的键输出到控制台。
注意事项
- 如果字典里有多个相同的值,
index()只会返回第一个匹配值的索引,所以只能拿到第一个对应的键。 - Python3里必须用
list()把keys()和values()的视图转成列表,因为视图对象不支持index()方法。
内容的提问来源于stack exchange,提问作者esabo
相关产品推荐
相关产品推荐

