Python打印Unicode列表

8

使用以下代码

lst = [u'\u5de5', u'\u5de5']
msg = repr(lst).decode('unicode-escape')
print msg

I got

[u'工', u'工']

我该如何去除前缀u,使得msg的内容为:

['工', '工']

你那里的操作引发了一个 AttributeError - anon582847382
gongzhitaao,你想要实现什么目标? - elbear
@gongzhitaao,我是在询问你代码的更高目的。如果你只想打印字符,那么只需要执行for c in lst: print c.encode('utf-8')就足够了。 - elbear
@LucianU 当然不是 :P。我没有问题在打印时删除前导的 u。我只需要一个没有 u 的字符串中的 Unicode 字符。 :) - gongzhitaao
这就是我想知道的。为什么你不需要 u?为什么要使用字符串表示列表? - elbear
显示剩余5条评论
1个回答

16
>>> import sys
>>> lst = [u'\u5de5', u'\u5de5']
>>> msg = repr([x.encode(sys.stdout.encoding) for x in lst]).decode('string-escape')
>>> print msg
['工', '工']

我还有一个与此相关的问题。请查看我的更新帖子。 - gongzhitaao
@gongzhitaao,“还有一个问题”在哪里? - falsetru
@gongzhitaao,more_msg = ... 就是有效的。问题出在哪里? - falsetru
1
不,它不行,'ascii' codec can't decode byte 是错误信息。 - gongzhitaao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接