On 07/05/2015 20:29, Neil Girdhar wrote:
The point is to have a Pythonic way of saying that. Using islice or iterating over a range and indexing is ugly. It would be cleaner to implement a string class that implements fast slicing than those unpythonic pieces of code.
I don't see anything unpythonic there at all, just standard Python. If you want fast slicing that badly you can write the class unless somebody beats you to it as their itch is more painful.
On Thu, May 7, 2015 at 2:26 PM, Terry Reedy firstname.lastname@example.org wrote:
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
-- My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language.