在Python中,如果我有一个字符串,如:
a =" Hello - to - everybody"
字符串而且我确实
a.split('-')
型然后我得到
[u'Hello', u'to', u'everybody']
型这仅仅是一个例子。我怎么能得到一个简单的名单没有恼人的u '?
jaql4c8m1#
u意味着它是一个Unicode字符串-你的原始字符串也必须是一个Unicode字符串。通常情况下,保持字符串Unicode是一个好主意,因为尝试转换为普通字符串可能会失败,因为字符没有等效的。u纯粹是用来让你知道它是一个表示中的unicode字符串-它不会影响字符串本身。一般来说,unicode字符串的工作方式与普通字符串完全一样,因此将它们保留为unicode字符串应该没有问题。在Python 3.x中,Unicode字符串是默认的,并且没有u前缀(相反,bytes(相当于旧字符串)前缀为b)。如果你真的需要转换成一个普通的字符串(这种情况很少见,但如果你使用的扩展库不支持unicode字符串,这可能是一个问题),看看unicode.encode()和unicode.decode()。你可以在拆分之前完成,也可以在拆分之后使用list comprehension完成。
u
bytes
b
unicode.encode()
unicode.decode()
ki1q1bka2#
我有一个相反的问题。str '第一回\u3000甄士隐梦幻识通灵 贾雨村风尘怀闺秀'需要被unicode字符分割。但是我做错了,代码split('\u')导致了unicode语法错误。代码为split('\u3000')
'第一回\u3000甄士隐梦幻识通灵 贾雨村风尘怀闺秀'
split('\u')
split('\u3000')
z4iuyo4d3#
您可以尝试以下操作来删除'\u3000':
'\u3000'
idx = your_string.find(u'\u3000')new_string = your_string[:idx] + your_string[idx + 1:]
idx = your_string.find(u'\u3000')
new_string = your_string[:idx] + your_string[idx + 1:]
字符串
3条答案
按热度按时间jaql4c8m1#
u
意味着它是一个Unicode字符串-你的原始字符串也必须是一个Unicode字符串。通常情况下,保持字符串Unicode是一个好主意,因为尝试转换为普通字符串可能会失败,因为字符没有等效的。u
纯粹是用来让你知道它是一个表示中的unicode字符串-它不会影响字符串本身。一般来说,unicode字符串的工作方式与普通字符串完全一样,因此将它们保留为unicode字符串应该没有问题。
在Python 3.x中,Unicode字符串是默认的,并且没有
u
前缀(相反,bytes
(相当于旧字符串)前缀为b
)。如果你真的需要转换成一个普通的字符串(这种情况很少见,但如果你使用的扩展库不支持unicode字符串,这可能是一个问题),看看
unicode.encode()
和unicode.decode()
。你可以在拆分之前完成,也可以在拆分之后使用list comprehension完成。ki1q1bka2#
我有一个相反的问题。str
'第一回\u3000甄士隐梦幻识通灵 贾雨村风尘怀闺秀'
需要被unicode字符分割。但是我做错了,代码split('\u')
导致了unicode语法错误。代码为
split('\u3000')
z4iuyo4d3#
您可以尝试以下操作来删除
'\u3000'
:字符串