我是python的新手,我想创建一个布尔搜索(信息检索)。这基本上需要获取两个2元组的列表,并通过以下方式创建一个新的3元组列表:
1)取限制在元组第一个条目的列表的交集,以及
2)将交集中元组的第二个条目从两个列表添加到新的3元组。例如,如果每个列表中都有一个元素的第一个条目a
,比如说(a,b)
和{(a,b,c)
。在
这里有一个更好的例子。我有两个这样的元组列表:
search_for_term1 =[(documentID1, term1_frequency),(documentID2, term1_frequency) ]
search_for_term2 =[(documentID1, term2_frequency),(documentID3, term2_frequency) ]
例如:
^{pr2}$预期产量:
[(documentID2, term1_frequency, term2_frequency), (documentID4, term1_frequency, term2_frequency), ... ]
out : [(2, 9, 1), (4, 2, 1), (6, 1, 5)]
为了得到一个简单的实现,你可以对列表进行排序,然后在它们之间进行迭代,得到那些具有相同
id
的元素,为了使你的复杂度接近O(N),你应该保持列表的排序。在例如
你需要把这几个清单合并起来。这是一个通用的解决方案。在
为了测试。。。在
^{pr2}$退货
这可以通过以下简单的列表理解来解决:
相关问题 更多 >
编程相关推荐