[Python-es] Ordenando con strcoll

Sio2 sio2sio2 en gmail.com
Lun Feb 8 19:48:14 CET 2010


Estoy intentando ordenar una serie de nombres alfabéticamente, pero hago
algo mal o esta función no me va.

Veamos:
$ python
Python 2.5.4 (r254:67916, Nov 19 2009, 22:14:20)
[GCC 4.3.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.setlocale(locale.LC_ALL,'')
'es_ES en euro'
>>> a="Diaz Flor, M"
>>> b="Diaz Flores, M"


Como veis no pongo ni los acentos para poder usar cmp:

>>> cmp(a,b)
-1

Lo esperable, "a" va antes que "b". Sin embargo:

>>> locale.strcoll(a,b)
8

"b" antes que "a" y, como consecuencia, el listado no sale ordenado
correctamente.

¿Se me escapa algo? ¿No funciona bien strcoll?

(Con es_ES.UTF-8 me sucede exactamente lo mismo)

Gracias de antemano.

-- 
   Si quieres que te sigan las mujeres, ponte delante.
                  --- Francisco de Quevedo ---



Más información sobre la lista de distribución Python-es