为什么第二个打印查找方法返回空白而不是链接acm.org?第一个结果是有道理的,但第二个结果不应该相似吗?
# Define a procedure, lookup,
# that takes two inputs:
# - an index
# - keyword
# The procedure should return a list
# of the urls associated
# with the keyword. If the keyword
# is not in the index, the procedure
# should return an empty list.
index = [['udacity', ['http://udacity.com', 'http://npr.org']],
['computing', ['http://acm.org']]]
def lookup(index,keyword):
for p in index:
if p[0] == keyword:
return p[1]
return []
print lookup(index,'udacity')
#>>> ['http://udacity.com','http://npr.org']
print lookup(index,'computing')
Results:
['http://udacity.com', 'http://npr.org']
[]
答案 0 :(得分:0)
你的缩进有一个错字。如果第一个条目不匹配,您将返回[]
。它应该是:
def lookup(index,keyword):
for p in index:
if p[0] == keyword:
return p[1]
return []
答案 1 :(得分:0)
我强烈建议在这种情况下使用字典。
就像那样:
index = {'udacity': ['http://udacity.com', 'http://npr.org'],
'computing': ['http://acm.org']}
def lookup(index, keyword):
return index[keyword] if keyword in index else []
这更快更清楚。当然,你有更多的灵活处理dict的可能性,而不是[['字符串列表'和[字符串列表]]列表]。