Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法像dict一样从列表中的元组中获取值?_Python_List_Tuples - Fatal编程技术网

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