Python не сортирует юникод должным образом. Стрколл не помогает ⇐ Python

Программы на Python
Anonymous
Python не сортирует юникод должным образом. Стрколл не помогает

Сообщение Anonymous »

У меня возникла проблема с сортировкой списков с использованием сопоставления Юникода в Python 2.5.1 и 2.6.5 в OSX, а также в Linux.

Код: Выделить всё

import locale
locale.setlocale(locale.LC_ALL, 'pl_PL.UTF-8')
print [i for i in sorted([u'a', u'z', u'ą'], cmp=locale.strcoll)]
Что следует напечатать:

Код: Выделить всё

[u'a', u'ą', u'z']
Но вместо этого выводит:

Код: Выделить всё

[u'a', u'z', u'ą']
Подводя итог: похоже, что strcoll сломался. Пробовал это с различными типами переменных (например, со строками, не закодированными в Юникоде).

Что я делаю не так?

С уважением,
Томаш Копчук.

Подробнее здесь: https://stackoverflow.com/questions/341 ... oesnt-help

Вернуться в «Python»