On Wed, Jun 04, 2014 at 03:17:00PM +1000, Nick Coghlan wrote:
There's a general expectation that indexing will be O(1) because all the builtin containers that support that syntax use it for O(1) lookup operations.
Depending on your definition of built in, there is at least one standard library container that does not - collections.deque.
Given the specialized kinds of application this Python implementation is targetted at, it seems UTF-8 is ideal considering the huge memory savings resulting from the compressed representation, and the reduced likelihood of there being any real need for serious text processing on the device.
It is also unlikely to find software or libraries like Django or Werkzeug running on a microcontroller, more likely all the Python code would be custom, in which case, replacing string indexing with iteration, or temporary conversion to a list is easily done.
In this context, while a fixed-width encoding may be the correct choice it would also likely be the wrong choice.