有没有办法像字典一样从列表中的元组中获取值?



我正在尝试从下面的这个列表(列表中的元组)中获取值:

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

注意:不要使用变量名,如listdicttuple等,因为会覆盖对list类的引用。

注意:如果您想在查找失败时使用默认值,您可以使用thedict.get(ourkey, defaultvalue),或者如果应该None,我们可以使用thedict.get(ourkey).请注意,如果这样的函数返回None,这本身并不意味着没有找到键:它可以意味着没有找到键,但它也可能是键与None值相关联的结果。

最新更新