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

TIM*_*MEX 4 python

[u'Iphones', u'dont', u'receieve', u'messages']
Run Code Online (Sandbox Code Playgroud)

有没有办法打印它没有前面的"你"?

rob*_*nce 9

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

print [str(x) for x in l]
Run Code Online (Sandbox Code Playgroud)

可能更好的是阅读python unicode并使用您想要的特定unicode编解码器进行编码:

print [x.encode() for x in l]
Run Code Online (Sandbox Code Playgroud)

[编辑]:澄清repr以及为什么你在那里 - repr的目标是提供一个方便的字符串表示,"返回一个字符串,当传递给eval()时会产生一个具有相同值的对象".即,您可以复制并粘贴打印输出并获取相同的对象(unicode字符串列表).

  • 如果你的字符串中有字符(例如u'süden'),则无法编码为ascii x .__ str __()或str(x)将不起作用(UnicodeEncodeError).正确的方法是print [x.encode(encoding)for x in l] (2认同)