2013-08-17 1 views
5

Я хочу создать класс python, который представляет строку, но может быть эффективно изменен. Я думал о реализации древовидной структуры данных, но я не знаю, как заставить ее вести себя как строка, чтобы ее можно было использовать во всех типах строковых функций, например, в регулярных выражениях.Как создать изменяемый строковый класс, который может использоваться как фактическая строка?

Конечно, можно было бы построить строку из структуры данных каждый раз, когда она понадобится, но это не очень эффективно и отнимает эффективность структуры данных.

Любые идеи?

+2

Только примечание, функции из стандартного модуля '' re'' требуют, чтобы строка была хешируемой, что противоречило бы требованию изменчивости. В противном случае, возможно, вам захочется взглянуть на массивы символов 'numpy''. – fjarri

+1

@Bogdan библиотека, с которой я связан ниже, утверждает, что она работает и с 're'. –

+0

@Bogdan Спасибо за примечание! Можете ли вы объяснить (или указать на объяснение), почему это необходимо? –

ответ

3

Я думаю, что нужно реализовать как «последовательность» и «буфер» протоколы Python, которые доступны только из C. Существует одна библиотека, я знаю, о чем это делает, хотя это немного от:

https://code.google.com/p/gapbuffer/

+0

Спасибо за ссылку. Слишком плохой бэндбуффер - только C –

 Смежные вопросы

  • Нет связанных вопросов^_^