Python 有没有办法像dict一样从列表中的元组中获取值?
我试图从下面的列表(列表中的元组)中获取值: 我想做的是通过输入单词名获取值,例如,如果我输入Python 有没有办法像dict一样从列表中的元组中获取值?,python,list,tuples,Python,List,Tuples,我试图从下面的列表(列表中的元组)中获取值: 我想做的是通过输入单词名获取值,例如,如果我输入'look',那么它将返回38,而不是输入我已经输入的列表[0][1]。我已经删除了列表中所有重复的单词。 否则,我是否应该用分离的项和值重新创建字典?如果键没有重复项(如果这些项没有重复项,那么问题就相当模糊),并且键是可散列的(字符串是可散列的),我们可以使用字典: 现在,我们可以使用以下工具执行查找: thedict['look'] 这将为我们提供38,如果我们查找一个不存在的键,比如'bobc
'look'
,那么它将返回38
,而不是输入我已经输入的列表[0][1]
。我已经删除了列表中所有重复的单词。
否则,我是否应该用分离的项和值重新创建字典?如果键没有重复项(如果这些项没有重复项,那么问题就相当模糊),并且键是可散列的(字符串是可散列的),我们可以使用字典: 现在,我们可以使用以下工具执行查找:
thedict['look']
这将为我们提供38
,如果我们查找一个不存在的键,比如'bobcat'
,那么Python将引发一个键错误:
>>> thedict['bobcat']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'bobcat
注意:不要使用变量名,如列表
、dict
、元组
等,因为您覆盖了对列表
类的引用
注意:如果您想在查找失败时使用默认值,您可以使用thedict.get(ourkey,defaultvalue)
,或者如果应该是None
,我们可以使用thedict.get(ourkey)
。请注意,如果此函数返回None
,其本身并不意味着找不到键:它可能意味着找不到键,但也可能是键与None
值关联的结果
看起来您需要一本词典。将列表放入
dict
构造函数:d=dict(l)
。注意:我重命名了您的列表l
,因为list
是一种类型,您不应该将其用作变量的名称。如何从该列表中创建它?不,如果不实现字典,就无法使元组列表像字典一样工作。相反,把你的列表
的元组
变成一个dict
,即mydict=list(list\u of\u tuples)
哦,这太简单了……非常感谢。你也可以使用get()
字典方法,在键不存在时安全地返回一个合理值。如果我们的值
将在块中被分配另一个值,除了
块,可以使用dict.get
(返回默认值)。@pault:yes,但我作为一名生产软件开发人员的经验是,它通常弊大于利,因为Python的信条之一是,您永远不应该默默地传递错误,除非这些错误被明确地沉默。不幸的是,我看到了很多由.get(…)
引起的麻烦。这部分是因为如果您没有传递一个明确的默认值,那么它将返回None
,但是None
也可以在字典中。谢谢您的回答,是的,我已经删除了所有重复的密钥。公平点-我只是出于完整性考虑才建议这样做。
thedict['look']
>>> 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