On Sun, 27 Feb 2000, 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->ob_sval) + x instead of the character data itself. > The creation of this PyStringRefObject would increment > the reference count of s by 1. This is exactly what the PyBufferObject does. I just documented the thing in api.tex a week ago or so. Regardless, the thing can operate exactly like a lightweight slice object. It it very similar at the Python level to a string, but it doesn't have the new string methods (yet) :-( If you want a temporary object for your slices (before recomposition with a "".join), then you should be able to use the buffer objects. [ unfortunately, the "".join method is nowhere near as optimal as it could be... it converts elems to string objects during the concatenation; it should have a variant that uses the buffer interface to precalculate the joined size, then use the interface to fetch the data ] Cheers, -g -- Greg Stein, http://www.lyra.org/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4