请帮助我,我尝试了很多技术,但我不能在屏幕上制作python print utf-8符号。
我只需要读取utf-8编码的标准输入流,计算字符并在屏幕上打印它们的出现次数。
这是我的代码:
import re
from collections import Counter
import sys
import codecs
sys.stdin = codecs.getreader('utf-8')(sys.stdin)
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
chars = re.findall(r'.', sys.stdin.read().lower())
counted_chars = Counter(chars).most_common(20)
print counted_chars
我试过这个
reload(sys)
sys.setdefaultencoding('utf-8')
但这不起作用。我经常在屏幕上看到:
(u'\u043e', 90)
由于某种原因,这些字符(u' \ u043e')不会显示为普通字母。
但如果我在控制台中执行以下操作:
>>> a = u'\u043e'
>>> print a
一切都很好,我得到了
我做错了什么? 请解释我或指向我正确的链接。我被搜查超过三个小时并没有成功解决我的问题。
非常感谢你。
答案 0 :(得分:0)
Counter.most_common()
返回元组列表,当在Python中打印数据结构时,如元组和列表,任何内部对象都打印其表示(无论repr(x)
将返回什么)。
要使用str()
代替repr()
打印字符,您需要迭代此列表并单独打印,例如:
for char, count in counted_chars:
print char, count