我正在尝试从下面的这个列表(列表中的元组)中获取值:
list = [('look', 38),
('ganesh', 35),
('said', 30),
('tiger', 30),
('cat', 28)]
我想做的是通过输入单词名称来获取值,例如,如果我输入'look'
那么它将返回38
而不是输入我已经完成的list[0][1]
。我已经删除了此列表中所有重复的单词。 否则,我应该重新制作带有分隔项目和值的字典吗?
如果键没有重复项(如果这些键有,那么问题无论如何都是相当模糊的),并且键是可哈希的(字符串是可哈希的),我们可以使用字典:
thelist = [('look', 38),
('ganesh', 35),
('said', 30),
('tiger', 30),
('cat', 28)]
thedict = dict(thelist)
现在我们可以使用以下方法执行查找:
thedict['look']
这将给我们38
,如果我们查找不存在的键,例如'bobcat'
,那么 Python 将引发一个密钥错误:
>>> thedict['bobcat']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'bobcat
因此,我们可以通过以下方式处理它:
ourkey = 'bobcat'
try:
ourvalue = thedict[ourkey]
except KeyError:
# do something in case not present
pass
注意:不要使用变量名,如
list
、dict
、tuple
等,因为会覆盖对list
类的引用。注意:如果您想在查找失败时使用默认值,您可以使用
thedict.get(ourkey, defaultvalue)
,或者如果应该None
,我们可以使用thedict.get(ourkey)
.请注意,如果这样的函数返回None
,这本身并不意味着没有找到键:它可以意味着没有找到键,但它也可能是键与None
值相关联的结果。