[u'Iphones', u'dont', u'receieve', u'messages']
有没有办法在没有“u”的情况下打印它?
答案 0 :(得分:9)
您所看到的是unicode字符串的__repr__()
表示,其中包含用于清除的u。如果你不想要你,你可以打印对象(使用__str__
) - 这对我有用:
print [str(x) for x in l]
可能更好的是阅读python unicode并使用您想要的特定unicode编解码器进行编码:
print [x.encode() for x in l]
[edit]:澄清repr以及为什么你在那里 - repr的目标是提供一个方便的字符串表示,“返回一个字符串,当传递给eval()时会产生一个具有相同值的对象” 。即你可以复制并粘贴打印输出并获得相同的对象(unicode字符串列表)。
答案 1 :(得分:4)
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。