[Python-ideas] Why don't CPython strings implement slicing using a view?

Terry Reedy tjreedy at udel.edu
Thu May 7 20:26:06 CEST 2015


On 5/7/2015 11:46 AM, Steven D'Aprano wrote:
> On Wed, May 06, 2015 at 07:05:15PM -0700, Neil Girdhar wrote:
>> Since strings are constant, wouldn't it be much faster to implement string
>> slices as a view of other strings?
>
> String or list views would be *very* useful in situations like this:
>
> # Create a massive string
> s = "some string"*1000000
> for c in s[1:]:
>      process(c)

Easily done without slicing, as discussed on python-list multiple times.

it = iter(s)
next(it)
for c in it: process(c)

for s[5555: 399999], use explicit indexes

for i in range(5555, 400000): process s[i]

or use islice.

The use case for sequence views is when one needs to keep around both 
the base sequence and the slices (views).

-- 
Terry Jan Reedy



More information about the Python-ideas mailing list