如何将unicode字符串拆分为列表

时间:2013-09-10 05:37:44

标签: python string unicode utf-8 unicode-string

我有以下代码:

stru = "۰۱۲۳۴۵۶۷۸۹"
strlist = stru.decode("utf-8").split()
print strlist[0]

我的输出是:

۰۱۲۳۴۵۶۷۸۹

但是当我使用时:

print strlist[1]

我得到以下traceback

IndexError: list index out of range

我的问题是,我如何split string?当然,请记住我从string获取function,认为它是variable

3 个答案:

答案 0 :(得分:14)

  1. 您不需要。

    >>> print u"۰۱۲۳۴۵۶۷۸۹"[1]
    ۱
    
  2. 如果您仍想要 ...

    >>> list(u"۰۱۲۳۴۵۶۷۸۹")
    [u'\u06f0', u'\u06f1', u'\u06f2', u'\u06f3', u'\u06f4', u'\u06f5', u'\u06f6', u'\u06f7', u'\u06f8', u'\u06f9']
    

答案 1 :(得分:11)

默认情况下,split()方法在空格上分割。因此,strlist是一个列表,其中包含strlist[0]中的整个字符串和一个单独的元素。

如果你想要一个包含每个unicode代码点一个元素的列表,你可以用不同的方式将它转换成一个列表:

  • 功能:list(stru.decode("utf-8"))
  • 列出合并:[item for item in stru.decode("utf-8")]
  • 根本不转换。你真的需要一份清单吗?您可以像处理任何其他序列类型(for character in stru.decode("utf-8"): ...)
  • 一样迭代unicode字符串

答案 2 :(得分:6)

你可以这样做

list(stru.decode("utf-8"))