Python .split() 不带 'u

问题描述 投票:0回答:3

在Python中,如果我有一个像这样的字符串:

a =" Hello - to - everybody"

我愿意

a.split('-')

然后我明白了

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

这只是一个例子。

我怎样才能得到一个简单的列表而不让你烦人'??

python unicode-string
3个回答
21
投票

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

u
纯粹是用来让你知道它是表示形式中的unicode字符串——它不会影响字符串本身。

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

在 Python 3.x 中,unicode 字符串是默认值,并且没有前缀

u
(相反,
bytes
(相当于旧字符串)前缀为
b
)。

如果您真的真的需要转换为普通字符串(这种情况很少见,但例如,如果您使用不支持 unicode 字符串的扩展库,则可能会出现问题),请查看

unicode.encode()
unicode.decode()
。您可以在拆分之前执行此操作,也可以在拆分之后使用列表理解执行此操作。


1
投票

我有一个相反的问题。 str

'第一回\u3000甄士隐梦幻识通灵 贾雨村风尘怀闺秀'
需要被 unicode 字符分割。但我犯了错误,代码
split('\u')
导致了unicode语法错误。

我应该编码

split('\u3000')


0
投票

您可以尝试以下方法删除

'\u3000'

idx = your_string.find(u'\u3000')
new_string = your_string[:idx] + your_string[idx + 1:]
© www.soinside.com 2019 - 2024. All rights reserved.