Мой код:Sort-Merge-Join алгоритм в Python
def merge_join(self, outer, outer_join_index, inner, inner_join_index):
a=list(inner)
b=list(outer)
if not a or not b:
return
inner_copy = sorted(a,key=lambda tup: tup[inner_join_index])
outer_copy = sorted(b,key=lambda tup: tup[outer_join_index])
inner_counter=0
outer_counter=0
while inner_counter < len(inner_copy) and outer_counter < len(outer_copy):
if outer_copy[outer_counter][outer_join_index]==inner_copy[inner_counter][inner_join_index]:
yield outer_copy[outer_counter]+inner_copy[inner_counter]
outer_counter+=1
elif outer_copy[outer_counter][outer_join_index]<inner_copy[inner_counter][inner_join_index]:
outer_counter+=1
else:
inner_counter+=1
Где внешняя и внутренняя являются генераторами.
Я выполнил заданный тест для алгоритма, но он возвратил генератор из 127 элементов в отличие от ожидаемого числа 214. Может ли кто-нибудь помочь мне проверить, где ошибка может быть в моем коде? Спасибо!!