如何使Python交互式Shell打印西里尔符号



我在我的项目中使用Pymorphy2作为西里尔字母形态分析器。但是当我尝试打印单词列表时,我得到这个:

>>> for t in terms:
...     p = morph.parse(t)
...     if 'VERB' in p[0].tag:
...             t = p[0].normal_form
...     elif 'NOUN' in p[0].tag:
...             t = p[0].lexeme[0][0]
... 
>>> terms
[u'u041fu0430u0432u0435u043b', u'u0445u043eu0434u0438u0442', u'u0434u043eu043cu043eu0439']

如何在python shell中打印俄语字符?

您看到的是unicode字符串的repr表示,如果您遍历列表或索引并打印每个字符串,您将看到您想要的输出。

In [4]: terms
Out[4]: 
[u'u041fu0430u0432u0435u043b',
 u'u0445u043eu0434u0438u0442',
 u'u0434u043eu043cu043eu0439'] # repr
In [5]: print terms[0] # str 
Павел
In [6]: print terms[1]
ходит

如果你想把它们都打印出来,看起来像一个列表,使用str.format和str.join:

terms = [u'u041fu0430u0432u0435u043b',
 u'u0445u043eu0434u0438u0442',
 u'u0434u043eu043cu043eu0439']
print(u"[{}]".format(",".join(terms)))
输出:

[Павел,ходит,домой]

最新更新