python - 算法加速字符串切片操作 - Python
问题描述
假设我有一个非常大的文本文档。我需要模仿文本编辑器的复制和粘贴操作。
更具体地说,我想编写两个函数 copy(i,j) 和 paste(i),其中 i 和 j 表示文本文档中字符的索引。
现在,我知道正常的字符串切片每次都会创建一个新的字符串对象并执行类似的操作
copy_text = str[i:j]
self.str = str[:i] + copy_text + str[j:]
考虑到我们在文本编辑器中执行复制粘贴功能的次数,最终会产生大量新字符串对象的开销。
我该怎么做?甚至可能吗?
我研究了memoryview,他们在其中使用了一个缓冲区,由于他们创建了原始对象的零拷贝视图,因此最终可能会花费更少的时间来执行。但是,我想用算法来做,而不是玩弄字符串的存储方式。我正在考虑使用数组的行来存储字符串并使用 B+ 树来存储指向该字符串的指针。我无法真正实现任何东西。
期待您的评论。谢谢。
解决方案
推荐阅读
- android - 使用 URI 从 GIF 上传到 Firebase 存储
- qt - 错误:QT 中的未知模块:qml quick
- java - NoSuchBeanDefinitionException:没有适用于 Weblogic (12.2.1.3.0) 的 [weblogic.messaging.saf.internal.SAFServerService] 类型的限定 bean
- docker - “docker pull redis”在下载时卡住了
- django - 有没有办法在 django 表单中动态过滤查询集以获得正确的外键?
- syntax-error - 为什么这个简单的 LISP 函数会抛出错误?
- javascript - 如何在 jQuery timepicker 插件中设置最大时间限制
- java - 获取 URL 参数并在 HTML 页面中打印
- python - QFileDialog 总是在主窗口后面打开
- python-3.x - 如何迭代由元组列表组成的字典?