列表中的"你"是什么意思?

Fed*_*rer 23 python string unicode

这是我第一次遇到这个.只是打印一个列表,每个元素似乎都u在它前面,即

[u'hello', u'hi', u'hey']
Run Code Online (Sandbox Code Playgroud)

它是什么意思,为什么列表会在每个元素前面都有这个?

由于我不知道这有多常见,如果您想看看我是如何遇到它的,我会很乐意编辑这篇文章.

Sil*_*ost 46

它表示unicode字符串.类似于r''原始字符串.

>>> type(u'abc')
<type 'unicode'>
>>> r'ab\c'
'ab\\c'
Run Code Online (Sandbox Code Playgroud)

  • 它通常用于正则表达式,所以我们可以编写像'r'/ [\ t] + /'`而不是`'/ [\\ t] + /'`这样的东西(注意双反斜杠 - 你没有必要除非你正在逃避结束报价,否则以原始字符串转义事物. (6认同)
  • 你和你有点不同.u表示字符串的类型,而r(或ru,如果你想使用原始的unicode文字)产生一个普通的str(或unicode,如果你们都使用了u和r)但是在编译时它的解析方式不同.`>>> repr(r'foo')"'foo'">>> repr(u'foo')"u'foo""`注意r是如何消失的(这只是反斜杠的作用)和你没有(因为它使一个不同类型的对象.) (3认同)
  • 它通常用在正则表达式中,以避免所有转义的反斜杠 (2认同)
  • 如果你的字符串是一个只使用ascii字符的unicode字符串(在你的例子中)`in`操作会隐式地转换字符串而你会得到'True`:[u'abc']中的'abc'会导致`True `.如果你的unicode字符串使用ascii字符集之外的字符,你自然会在这样的测试中得到'False`. (2认同)

Ras*_*Kaj 9

u意味着以下字符串是一个unicode字符串(与普通的ascii字符串相对).它与恰好包含(unicode)字符串的列表无关.