首頁  >  問答  >  主體

python 如何將字串轉換成列表

如何將字串如a = "我是中國人",轉換成列表li =["我","是","中","國","人"]

a = "我是一个中国人"
li = list(a)
print li

輸出卻是

['\xe6', '\x88', '\x91', '\xe6', '\x98', '\xaf', '\xe4', '\xb8', '\x80', '\xe4', '\xb8', '\xaa', '\xe4', '\xb8', '\xad', '\xe5', '\x9b', '\xbd', '\xe4', '\xba', '\xba']

我用JavaScript很簡單的就實作了

var a = "我是中国人"
li = a.split("")
console.log(li) // >>>["我","是","中","国","人"]

不知道python應該如何實現?

習慣沉默習慣沉默2711 天前667

全部回覆(5)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 10:59:49

    可以先將字串解編碼成unicode, 再用list

    # 第一种:
    >>> a = u"我是中国人"
    >>> s = list(a)
    >>> print s
    [u'\u6211', u'\u662f', u'\u4e2d', u'\u56fd', u'\u4eba']
    >>> print s[1]
    是
    
    # 第二种
    >>> a = "我是中国人"
    >>> s = a.decode('utf8')
    >>> s = list(a.decode('utf8'))
    >>> s
    [u'\u6211', u'\u662f', u'\u4e2d', u'\u56fd', u'\u4eba']
    >>> print s[1]
    是

    回覆
    0
  • 迷茫

    迷茫2017-05-18 10:59:49

    用python3

    回覆
    0
  • 巴扎黑

    巴扎黑2017-05-18 10:59:49

    python3沒有編碼問題

    In [20]: a
    Out[20]: '我是中国人'
    
    In [21]: li=list(a)
    
    In [22]: li
    Out[22]: ['我', '是', '中', '国', '人']

    回覆
    0
  • 天蓬老师

    天蓬老师2017-05-18 10:59:49

    雷雷

    回覆
    0
  • 高洛峰

    高洛峰2017-05-18 10:59:49

    1、不用list(a),直接

    for each in a:   
        print each
          

    這樣就可以,和編碼沒關係,跟python2或python3也沒關係

    2、可以把a直接當作一個list了,取得話就用 a[num]切片就可以,比如取「我」就是a[0],取「中國」可以用a[2:3]

    回覆
    0
  • 取消回覆