Imprimir Unicode Char dentro de una lista

a = ['M\xc3\xa3e'] b = 'M\xc3\xa3e' print a print b 

resultados:

 ['M\xc3\xa3e'] Mãe 

¿Cómo puedo imprimir a like: ['Mãe']

Esta es una característica en Python2

Pero en python3 obtendrás lo que quieres :).

 $ python3 Python 3.3.3 (default, Nov 26 2013, 13:33:18) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> a = ['M\xc3\xa3e'] >>> print(a) ['Mãe'] >>> 

o en python2 puedes:

 print '[' + ','.join("'" + str(x) + "'" for x in a) + ']' 

En python2 puedes subclase de clase de clase y usar el método __unicode__ :

 #Python 2.7.3 (default, Sep 26 2013, 16:38:10) >>> class mylist(list): ... def __unicode__(self): ... return '[%s]' % ', '.join(e.decode('utf-8') if isinstance(e, basestring) ... else str(e) for e in self) >>> a = mylist(['M\xc3\xa3e', 11]) >>> print a ['M\xc3\xa3e', 11] >>> print unicode(a) [Mãe, 11] 

Para uso personal, este módulo https://github.com/moskytw/uniout será muy útil.