我正在研究一个反向索引的搜索程序。索引本身是一个字典,其键是术语,其值本身是短文档的字典,ID号是键,其文本内容是值。
为了对两个词执行“与”搜索,因此我需要与他们的发布列表(字典)相交。在Python中有什么明确的方法(不一定太聪明)?我首先尝试了以下方法iter:
iter
p1 = index[term1] p2 = index[term2] i1 = iter(p1) i2 = iter(p2) while ... # not sure of the 'iter != end 'syntax in this case ...
在Python中,您可以使用&运算符来计算集合的交集,而字典键是类似于集合的对象(在Python 3中):
&
dict_a = {"a": 1, "b": 2} dict_b = {"a": 2, "c": 3} intersection = dict_a.keys() & dict_b.keys() # {'a'}
在Python 2上,您必须将字典键转换为自己设置:
keys_a = set(dict_a.keys()) keys_b = set(dict_b.keys()) intersection = keys_a & keys_b