【发布时间】:2010-12-15 02:41:09
【问题描述】:
这是我第一次遇到这种情况。刚刚打印了一个列表,每个元素前面似乎都有一个u,即
[u'hello', u'hi', u'hey']
这是什么意思,为什么列表的每个元素前面都有这个?
由于我不知道这有多普遍,如果您想看看我是如何发现它的,我会很乐意编辑帖子。
【问题讨论】:
-
当您查看字符串常量的语法时,您看到了什么? docs.python.org/library/…
这是我第一次遇到这种情况。刚刚打印了一个列表,每个元素前面似乎都有一个u,即
[u'hello', u'hi', u'hey']
这是什么意思,为什么列表的每个元素前面都有这个?
由于我不知道这有多普遍,如果您想看看我是如何发现它的,我会很乐意编辑帖子。
【问题讨论】:
u 仅表示以下字符串是 unicode 字符串(与纯 ascii 字符串相反)。它与恰好包含(unicode)字符串的列表无关。
【讨论】:
【讨论】:
u'
它是 unicode 字符串的指示。对于原始字符串,类似于 r''。
>>> type(u'abc')
<type 'unicode'>
>>> r'ab\c'
'ab\\c'
【讨论】:
r'/[ \t]+/' 而不是 '/[ \\t]+/' (注意双反斜杠 - 你不必在原始字符串中转义,除非你正在转义结束语)。
>>> repr(r'foo') "'foo'" >>> repr(u'foo') "u'foo'" 注意 r 是如何消失的(这只是反斜杠的作用)而 u 没有(因为它会生成不同类型的对象。)
in 操作将隐式转换字符串,您将得到 True: 'abc' in [u 'abc'] 结果为True。如果你的 unicode 字符串使用了 ascii 字符集之外的字符,你自然会在这样的测试中得到False。
我相信 u' 前缀会创建一个 unicode 字符串而不是常规的 ascii
【讨论】: