如何在for循环中返回输入参数的值

2024-09-28 20:49:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中有以下函数

def find_new_similar(tfidf_matrix2, index, tfidf_matrix, top_n = 1):
    cosine_similarities = linear_kernel(tfidf_matrix2[index:index+1], tfidf_matrix).flatten()
    related_docs_indices = [i for i in cosine_similarities.argsort()[::-1] if i != index]
    return [(index, cosine_similarities[index]) for index in related_docs_indices][0:top_n]

当我打电话给他时,我得到了这样的信息:

>>> find_new_similar(tfidf_matrix2, 40, tfidf_matrix)

([(260816, 0.55759049663331683)])

它是related_docs_indices的索引和cosine_similarities的结果,索引作为函数的输入。我还想返回传递给函数的初始索引i。我试过:

def find_new_similar(tfidf_matrix2, index, tfidf_matrix, top_n = 1):
    cosine_similarities = linear_kernel(tfidf_matrix2[index:index+1], tfidf_matrix).flatten()
    related_docs_indices = [i for i in cosine_similarities.argsort()[::-1] if i != index]
    return [(index, cosine_similarities[index]) for index in related_docs_indices][0:top_n], index

例如,只需在return命令的末尾添加,index。但这会产生:

>>> find_new_similar(tfidf_matrix2, 40, tfidf_matrix)

([(260816, 0.55759049663331683)], 0)

但我真的在期待

([(260816, 0.55759049663331683)], 40)

提前谢谢


Tags: indocsnewforindextopfindmatrix
1条回答
网友
1楼 · 发布于 2024-09-28 20:49:33

索引的值正在列表中被替换(**在下面的代码中)

return [(index, cosine_similarities[index]) for **index** in related_docs_indices][0:top_n], index

因此,重命名迭代变量将得到所需的结果

return [(i, cosine_similarities[i]) for i in related_docs_indices][0:top_n], index

相关问题 更多 >