Различается ли библиотека, которая работает с итераторами? - PullRequest
0 голосов
/ 10 июля 2019

Мне было интересно, есть ли библиотека сравнения, которая работает с итераторами / генераторами для повышения производительности. В идеале и параметры, и ответы должны быть итераторами, чтобы не преобразовывать их в списки.

Мой "текст" хранится в (своего рода) древовидной структуре, и я использую итератор для просмотра текста. Например, если я использую SequenceMatcher из difflib, я должен преобразовать свои итераторы в списки до этого: sm = SequenceMatcher(None, list(iterator1, iterator2).

Было бы также полезно, если бы библиотека возвращала результаты сравнения в виде итераторов, что не относится к difflib, например. sm.get_opcodes() возвращает список.

Я также быстро проверил google-diff-match-patch, но, похоже, он разрешает только тексты, а не списки - поэтому мне пришлось бы преобразовывать свои итераторы в обычный текст. Таким образом, хотя это должно быть быстрее, я могу закончить с худшими результатами, выполняя эту конкатенацию (я попробую это в какой-то момент, но переход на эту библиотеку потребует много изменений в коде).

Итак, есть ли библиотека, которая поддерживает итераторы при дифференцировании? или это на самом деле невозможно, учитывая детали алгоритма?

...