[Python-Dev] RFD: how to build strings from lots of slices? (original) (raw)

Jean-Claude Wippler jcw@equi4.com
Sun, 27 Feb 2000 13:23:41 +0100


Ka-Ping Yee wrote:

On Sun, 27 Feb 2000, Fredrik Lundh wrote: > here's one proposal, off the top of my head: > > 1. introduce a PySliceListObject, which behaves like a > simple sequence of strings, but stores them as slices. It occurred to me when i read this that all slices could be references within the original string, since strings are immutable. That is, s[x:y] could return a PyStringRefObject that behaves just like a string, but contains a length y - x and a pointer to &(s->obsval) + x instead of the character data itself. The creation of this PyStringRefObject would increment the reference count of s by 1.

The general approach is "cords" (in Hans Boehm's GC, garbage-collected), and "ropes" (in SGI's STL, http://www.sgi.com/Technology/STL/Rope.html, reference-counted).

It's a great idea, IMO. Why create and copy strings all the time?

-jcw