2015-11-06 69 views
0

我使用Pycharm/Intellij Idea。當我用變音符打印一些數據到控制檯時,它會以適當的格式打印。以正確編碼打印列表項目

print u"čipsy" 
čipsy 

但是,當我打印包含變音符的項目列表時,它以原始格式打印它們。

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

是否可以讓我的IDE以適當的格式打印它?所以輸入將是:

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

回答

0

發生這種情況的原因是,當您打印字符串時,它會在內部打印str(s)。當您打印列表時,列表的str()方法在內部獲取列表項的repr()並打印列表項。

E.g.

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

有關STR和再版之間差異的詳細信息,請參閱此問題:Difference between __str__ and __repr__ in Python

所以就我所知,回答你原來的問題「是否有可能使我的IDE以適當的格式打印?!「可能是否定的,除非你將list分類並重寫str方法以獲得所需的行爲。然後你需要確保你想打印的列表是你的特殊列表子類的一個實例。