【问题标题】:Python .split() without 'uPython .split() 没有'u
【发布时间】:2026-02-12 21:05:01
【问题描述】:

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

a =" Hello - to - everybody"

我愿意

a.split('-')

然后我得到

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

这只是一个例子。

如果没有那个烦人的 u',我怎样才能得到一个简单的列表??

【问题讨论】:

  • 这里显示如何转换:*.com/questions/1207457/…
  • 这是你的真实代码吗?你拆分一个字符串,而分隔符也是一个字符串,那么结果应该是字符串列表,而不是unicode列表。
  • @nymk 我想提问者正在使用 Django,由于它对不同字符集的强大支持,它倾向于尽可能地使用 Unicode,并且他们错误地简化了问题。

标签: python unicode-string


【解决方案1】:

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

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

一般来说,unicode 字符串与普通字符串完全一样,因此将它们保留为 unicode 字符串应该没有问题。

在 Python 3.x 中,unicode 字符串是默认值,并且没有 u 前置(相反,bytes(相当于旧字符串)前置有 b)。

如果您真的真的需要转换为普通字符串(这种情况很少发生,但如果您使用的扩展库不支持unicode 字符串,例如),看看unicode.encode()unicode.decode()。您可以在拆分前执行此操作,也可以在拆分后使用list comprehension

【讨论】: