我试图从下面的列表(列表中的元组)中获取值:
list = [('look', 38),
('ganesh', 35),
('said', 30),
('tiger', 30),
('cat', 28)]
我想要做的是通过输入单词名称来获取值,例如,如果我输入'look'
,它将返回38
而不是输入我已经完成的list[0][1]
。我已经删除了此列表中的所有重复单词。
否则,我应该用分隔项目和值重新制作字典吗?
答案 0 :(得分:2)
如果密钥没有重复项(如果这些密钥不是问题,那么它是非常模糊的),并且密钥是 hashable (字符串是可清除的),我们可以使用字典:
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
值相关联的事实。