我在字符串 myStr
中得到了一个文本文件的全部内容(至少几 KB)。
以下代码是否会在内存中创建字符串的副本(减去第一个字符)?
myStr = myStr[1:]
我希望它只是指同一内部缓冲区中的不同位置。如果没有,是否有更有效的方法来做到这一点?
谢谢!
注意:我使用的是 Python 2.5。
最佳答案
至少在 2.6 中,字符串切片总是新的分配; string_slice() 调用 PyString_FromStringAndSize()。它不重用内存——这有点奇怪,因为对于不变的字符串,这应该是一件相对容易的事情。
缺少缓冲区 API(您可能不需要),没有更有效的方法来执行此操作。
关于python - Python子串提取的效率如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2457367/