在列表中打印Unicode字符

时间:2014-01-06 09:49:47

标签: python python-2.7 unicode

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

结果:

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

如何打印a,如:['Mãe']

3 个答案:

答案 0 :(得分:2)

在python2中,您可以继承list类并使用__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]

答案 1 :(得分:1)

这是python2中的一个功能

但是在python3中你会得到你想要的东西:)。

$ 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']
>>> 

或在python2中你可以:

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

答案 2 :(得分:0)

对于个人使用,此模块https://github.com/moskytw/uniout将非常方便。