2

我有一个输入文件,其中每一行都有一组单词。接下来,我进行查询并计算输入文件的每一行与查询之间的相似度分数。我试图通过使用字典来做到这一点,将字典的最大大小保持为 20(如果按值排序,则获得前 20 个结果)但我收到以下语法错误:

File "retrieve.py", line 47
result.item()[20].key()=temp
SyntaxError: can't assign to function call

我的代码是:

images=open("jcnout","r")
res=open("result","w")
while linecount>0:       //linecount is the num of lines in file images
    line=images.readline().split()
    ////compute score for each line
    if (len(result)<20):
        result[str(line)]=score
    else:
        if(len(result)==20):
            result = sorted(result.iteritems(), key=operator.itemgetter(1))
            if(result.item()[20].value()<score):
                result.item()[20].key()=str(line)
                result.item()[20].value=score
                result = sorted(result.iteritems(), key=operator.itemgetter(1))
    res.write(result)
    linecount-=1
4

2 回答 2

2

正如错误所说,您不能分配给函数调用:

result.item()[20].key()=str(line)

这正是你想要做的!

由于我不明白您是如何获得该result对象的,因此我无法就如何更改result.item()[20]. 但如果它是一本字典,你最好这样做:

result.item()[20][str(line)] = score
于 2013-06-30T16:34:49.133 回答
0

您在这里调用一个函数并尝试为返回的值分配另一个值:

result.item()[20].key()=str(line)
于 2013-06-30T16:34:11.843 回答