unicode string - Python .split() 不带 'u



在Python中,如果我有一个字符串,比如:

a =" Hello - to - everybody"

我做

a.split('-')

然后我得到

[u'Hello', u'to', u'everybody']

这只是一个例子。

我怎么能得到一个简单的列表而没有那个烦人的u??

u表示它是一个unicode字符串-您的原始字符串也必须是unicode字符串。一般来说,保持字符串为Unicode是个好主意,因为尝试转换为普通字符串可能会因为没有等效字符而失败。

u纯粹是用来让您知道它在表示中是一个unicode字符串,它不会影响字符串本身。

通常,unicode字符串的工作方式与普通字符串完全相同,因此将它们保留为unicode字符串应该没有问题。

在Python3.x中,unicode字符串是默认字符串,并且不以u为前缀(相反,bytes(相当于旧字符串)以b为前缀)。

如果确实确实需要转换为普通字符串(这种情况很少发生,但如果您使用的扩展库不支持unicode字符串,则可能会出现问题),请查看unicode.encode()unicode.decode()。你可以在拆分之前这样做,也可以在拆分之后使用列表理解。

我有一个相反的问题。str '第一回u3000甄士隐梦幻识通灵 贾雨村风尘怀闺秀'需要通过unicode字符进行拆分。但我犯了错误,并编写了导致unicode语法错误的split('u')代码。

我应该对split('u3000') 进行编码

最新更新