On 2014-04-29 18:37, wxjmfa...@gmail.com wrote:
Let see how Python is ready for the next Unicode version
(Unicode 7.0.0.Beta).


timeit.repeat("(x*1000 + y)[:-1]", setup="x = 'abc'; y = 'z'")
[1.4027834829454946, 1.38714224331963, 1.3822586635296261]
timeit.repeat("(x*1000 + y)[:-1]", setup="x = 'abc'; y = '\u0fce'")
[5.462776291480395, 5.4479432055423445, 5.447874284053398]


# more interesting
timeit.repeat("(x*1000 + y)[:-1]",\
...     setup="x = 'abc'.encode('utf-8'); y = '\u0fce'.encode('utf-8')")
[1.3496489533188765, 1.328654286266783, 1.3300913977710707]


Although the third example is the fastest, it's also the wrong way to
handle Unicode:

>>> x = 'abc'.encode('utf-8'); y = '\u0fce'.encode('utf-8')
>>> t = (x*1000 + y)[:-1].decode('utf-8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 3000-3001: unex
pected end of data

Note 1:  "lookup" is not the problem.

Note 2: From Unicode.org : "[...] We strongly encourage [...] and test
them with their programs [...]"

-> Done.

jmf


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to