用python将中文字符分成一个个字

>>> a='魏茨曼和'
>>> [i for i in a]
['\xe9', '\xad', '\x8f', '\xe8', '\x8c', '\xa8', '\xe6', '\x9b', '\xbc', '\xe5', '\x92', '\x8c']
>>> a='魏和和'
>>> [i for i in a]
['\xe9', '\xad', '\x8f', '\xe5', '\x92', '\x8c', '\xe5', '\x92', '\x8c']
>>> a[0]
'\xe9'
阅读 17.5k
3 个回答

python3默认是unicode,所以python3可以直接循环,但是python2不可以

代码

text='魏和河'
text = unicode(text, 'utf-8')
for i in text:
    print i

同样的代码,在python3下运行就没有任何问题。python3强制unicode编码,就可以拆分成一个个汉字

python 2的字符串有隐式的str到byte的转换,而如下所示默认的是(3个byte代表一个中文字的utf8),所以你遍历出来是这个结果。
你可以这么写:

# encoding=utf-8
a = u'魏和河'
for i in a:
    print i
推荐问题