[Python-Dev] Internal representation of strings and Micropython

Serhiy Storchaka storchaka at gmail.com
Wed Jun 4 19:52:14 CEST 2014


04.06.14 20:05, Paul Sokolovsky написав(ла):
> On Wed, 04 Jun 2014 19:49:18 +0300
> Serhiy Storchaka <storchaka at gmail.com> wrote:
>> html.HTMLParser, json.JSONDecoder, re.compile, tokenize.tokenize
>> don't use iterators. They use indices, str.find and/or regular
>> expressions. Common use case is quickly find substring starting from
>> current position using str.find or re.search, process found token,
>> advance position and repeat.
>
> That's sad, I agree.

Other languages (Go, Rust) can be happy without O(1) indexing of 
strings. All string and regex operations work with iterators or cursors, 
and I believe this approach is not significant worse than implementing 
strings as O(1)-indexable arrays of characters (for some applications it 
can be worse, for other it can be better). But Python is different 
language, it has different operations for strings and different idioms. 
A language which doesn't support O(1) indexing is not Python, it is only 
Python-like language.



More information about the Python-Dev mailing list