index()方法
检测字符串中是否包含子字符串 str,并返回索引值;
从列表中找出某个值第一个匹配项的索引位置。
字典对象能直接用index()方法吗?
对于字典record={5: 3, 2: 3, 4: 1},执行index()方法,企图找到value为1对应的索引值
报错:字典对象,不能直接使用index()方法
搜索得知:index()方法的使用对象为列表/字符串
字典对象如何使用index()方法?
由前文知,字典对象本身并不存在index()方法,列表类型存在index()方法。若想找到字典中指定value/key对应的索引值,应想办法将字典类型转化为列表类型。
1.字典对象的values()方法和keys()方法
2.转化为列表对象
此时得到字典中key和value的列表,分别可以使用index()方法
实战
现在要做的事:找到record字典中,value为1对应的key值
record={5: 3, 2: 3, 4: 1}
1.先找到value为1对应的索引值
‘1’在values列表[3,3,1]的索引值为2
所以!value‘1’对应的key值,在keys列表[5,2,4]中的索引值也为2
2.找到index为2对应的key值
注意,字典对象不具备【根据索引找列表中对应的值】这一功能。
record[2]
执行效果为:找到record字典中【key值为2的】value值
先将record.keys()转化为列表对象
再使用list[index]
找到list列表中序列为index的值
得到value为1对应的key值为4
list(record.keys())[list(record.values()).index(1)]