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.