Python .split()不带'u

frebpwbc  于 5个月前  发布在  Python
关注(0)|答案(3)|浏览(37)

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

a =" Hello - to - everybody"

字符串
而且我确实

a.split('-')


然后我得到

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


这仅仅是一个例子。
我怎么能得到一个简单的名单没有恼人的u '?

jaql4c8m

jaql4c8m1#

u意味着它是一个Unicode字符串-你的原始字符串也必须是一个Unicode字符串。通常情况下,保持字符串Unicode是一个好主意,因为尝试转换为普通字符串可能会失败,因为字符没有等效的。
u纯粹是用来让你知道它是一个表示中的unicode字符串-它不会影响字符串本身。
一般来说,unicode字符串的工作方式与普通字符串完全一样,因此将它们保留为unicode字符串应该没有问题。
在Python 3.x中,Unicode字符串是默认的,并且没有u前缀(相反,bytes(相当于旧字符串)前缀为b)。
如果你真的需要转换成一个普通的字符串(这种情况很少见,但如果你使用的扩展库不支持unicode字符串,这可能是一个问题),看看unicode.encode()unicode.decode()。你可以在拆分之前完成,也可以在拆分之后使用list comprehension完成。

ki1q1bka

ki1q1bka2#

我有一个相反的问题。str '第一回\u3000甄士隐梦幻识通灵 贾雨村风尘怀闺秀'需要被unicode字符分割。但是我做错了,代码split('\u')导致了unicode语法错误。
代码为split('\u3000')

z4iuyo4d

z4iuyo4d3#

您可以尝试以下操作来删除'\u3000'

idx = your_string.find(u'\u3000')
new_string = your_string[:idx] + your_string[idx + 1:]

字符串

相关问题