为什么当我打印东西时,旁边总是有一个unicode?(Python)

2024-10-03 09:09:20 发布

您现在位置:Python中文网/ 问答频道 /正文

[u'Iphones', u'dont', u'receieve', u'messages']

有没有办法在前面不加“u”就打印出来?在


Tags: messagesdont办法iphonesreceieve
2条回答

您看到的是unicode字符串的__repr__()表示形式,其中包含u来表示清楚。如果你不想要u,你可以打印这个对象(使用__str__)-这对我有用:

print [str(x) for x in l]

可能更好的方法是阅读python unicode并使用所需的特定unicode编解码器进行编码:

^{pr2}$

[edit]:为了澄清repr和u为什么存在,repr的目标是提供一个方便的字符串表示,“返回一个字符串,当传递给eval()时,该字符串将生成具有相同值的对象”。Ie可以复制并粘贴打印的输出并获得相同的对象(unicode字符串列表)。在

Python包含unicode字符串和常规字符串的字符串类。字符串前面的u表示它是unicode字符串。在

>>> mystrings = [u'Iphones', u'dont', u'receieve', u'messages']
>>> [str(s) for s in mystrings]
['Iphones', 'dont', 'receieve', 'messages']
>>> type(u'Iphones')
<type 'unicode'>
>>> type('Iphones')
<type 'str'>

有关Python中可用的字符串类型的更多信息,请参见http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-buffer-xrange。在

相关问题 更多 >