comparar y ordenar unicodes

Marcos Sánchez Provencio rapto en arrakis.es
Sab Nov 12 09:28:35 CET 2005


Prueba esto (asegúrate de guardar el fichero con la codificación que
indiques en la cabecera):

# -*- coding: utf8 -*-
import locale
locale.setlocale(locale.LC_ALL, '')
assert u'ñ'.upper()==u'Ñ'

palabras=[u'Ca',u'Cha',u'Cá',u'Cb',u'Cu']
palabras.sort(locale.strcoll)
for p in palabras:
    print p,
#fin

marcos en renata:~ $ python xx.py
Ca Cá Cb Cha Cu


El sáb, 12-11-2005 a las 00:25 +0100, Andres Moya escribió:
> Buenas.
> 
> Tengo una pregunta sencillita (jeje): ¿cómo puedo comparar dos cadenas 
> unicode (u ordenar una lista de cadenas)  de forma coherente con el 
> idioma español? Es decir, considerando que las letras con acento son 
> igual que sin acento, y que la ñ va después de la n.
> 
> Para lo primero se me ha ocurrido normalizar convirtiendo áéíóú en aeiou 
> con la función translate(), pero para lo segundo no se me ocurre manera. 
> Por supuesto, la comparación directa y el método sort() no funcionan 
> así, aunque las cadenas sean unicode.
> 
> ---
> Andres.Moya en hispalinux.es
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es




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