以正确的编码打印列表项

时间:2015-11-06 18:08:01

标签: python intellij-idea encoding console pycharm

我使用Pycharm / Intellij Idea。当我将带有变音符号的数据打印到控制台时,它会以适当的格式打印。

print u"čipsy"
čipsy

但是当我打印包含变音符号的项目列表时,它会以原始格式打印它们。

print [u"čipsy"]
[u'\u010dipsy']

是否可以让我的IDE以适当的格式打印?所以输入将是:

print [u"čipsy"]
['čipsy']

1 个答案:

答案 0 :(得分:0)

发生这种情况的原因是当你打印字符串时,它会在内部打印str(s)。当您打印列表时,列表的str()方法在内部获取列表项的repr()并打印它。

E.g。

>>> s = u'\u010dipsy'
>>> print s
čipsy
>>> print repr(s)
u'\u010dipsy'

有关str和repr之间差异的更多信息,请参阅此问题:Difference between __str__ and __repr__ in Python

据我所知,原始问题的答案“是否可以让我的IDE以适当的格式打印它?!”可能没有,除非你继承list并覆盖str方法以获得你想要的行为。然后,您需要确保您要打印的列表是特殊列表子类的实例。