我有以下代码:
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
?
答案 0 :(得分:14)
您不需要。
>>> print u"۰۱۲۳۴۵۶۷۸۹"[1]
۱
如果您仍想要 ...
>>> 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"):
...)答案 2 :(得分:6)
你可以这样做
list(stru.decode("utf-8"))