1

予期しないエラーが発生します。同様のエラーのある投稿があることを認識していますが、答えを理解できなかったか、私のケース(辞書)に関連付けることができませんでした。

入力ファイルの各行の類似度スコアを計算し、反復ごとに (つまり、入力ファイルの各行に対して) スコアの上位 20 の値を辞書に保存しようとしています。

以下は私のコードです:

result={}
//code for computation of score for each line of an input file

if (len(result)<20):
    result[str(line)]=score
else:
    if(len(result)==20):
        result = sorted(result.iteritems(), key=operator.itemgetter(1))
        if(result.item()[19].value()<score):
            result.item()[19][str(line)]=score

エラーは次のとおりです。

File "retrieve.py", line 45, in <module>
if(result.item()[19].value()<score):
AttributeError: 'list' object has no attribute 'item'
4

1 に答える 1

3
result = sorted(result.iteritems(), key=operator.itemgetter(1))

resultはもはや辞書ではありません。

私が間違っていなければ、あなたの問題は次のように解決できます(linesどこかから来たと仮定して):

result = sorted({(calculate_score(line), line) for line in lines})
print(result[:20])

順序付き辞書を作成するには、 OrderedDictを参照してください。

于 2013-06-30T17:54:50.560 に答える