定义一个带有3个输入的过程add_to_index: 索引:[[,[,...]],...] 关键字:字符串 值:字符串
如果关键字已在索引中,请将该值添加到与该关键字关联的值列表中。
如果关键字不在索引中,请在索引中添加一个条目:[keyword,[value]]
我写了以下代码:
index = []
def add_to_index(index,keyword,value):
for entry in index :
if entry[0] == keyword :
entry[1].append(value)
return
index.append([keyword,[value]])
return index
并在测试时使用以下内容:
add_to_index(index,'python','python api')
add_to_index(index,'computing','basics of computing')
add_to_index(index,'python','python tutorial')
print index
我的预期输出是:
[['python', ['python api', 'python tutorial']], ['computing', ['basics of computing']]]
但我得到了:
[['python', ['python api', 'python tutorial']]]
我不确定我哪里出错了,请帮忙
答案 0 :(得分:1)
这种情况发生了,因为您过早地从add_to_index
返回。
您的代码只进行一次迭代并从函数返回。您需要缩进return
(可能会return index
)
index = []
def add_to_index(index,keyword,value):
for entry in index :
if entry[0] == keyword :
entry[1].append(value)
return
index.append([keyword,[value]])
return
测试它并且它有效!
In [38]: add_to_index(index,'python','python api')
In [39]: add_to_index(index,'computing','basics of computing')
In [40]: add_to_index(index,'python','python tutorial')
In [41]: print index
[['python', ['python api', 'python tutorial']], ['computing', ['basics of computing']]]