2015-11-06 2 views
0

Я использую Pycharm/Intellij Idea. Когда я печатаю некоторые данные с диакритикой в ​​консоли, он печатает в надлежащем формате.Распечатать список элементов в правильной кодировке

print u"čipsy" 
čipsy 

Но когда я печатаю список предметов, содержащих диакритические знаки, он печатает их в необработанном формате.

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

Возможно ли сделать мою IDE распечатать ее в надлежащем формате? Таким образом, вход будет:

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

ответ

0

Причина, по которой это происходит, заключается в том, что когда вы печатаете строку, она внутренне печатает str (s). Когда вы печатаете список, метод str() списка внутренне извлекает список() элементов списка и печатает это.

E.g.

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

Для получения дополнительной информации о различиях между ул и предст см этот вопрос: Difference between __str__ and __repr__ in Python

Так, насколько я знаю, ответ на ваш первоначальный вопрос «Можно ли сделать мой IDE чтобы напечатать его в правильном формате ?! " вероятно, нет, если вы не подклассифицировали list и не переопределили метод str, чтобы иметь нужное поведение. Затем вам нужно убедиться, что список, который вы хотите распечатать, является экземпляром вашего специального подкласса списка.

Смежные вопросы