如何將字符串拆分爲字符數組?

我試圖在網上四處尋找將字符串拆分爲字符數組的答案,但彷佛找不到一個簡單的方法 python

str.split(//)彷佛不像Ruby那樣工做。 有沒有一種簡單的方法能夠不循環? linux


#1樓

若是您但願只讀訪問該字符串,則能夠直接使用數組符號。 git

Python 2.7.6 (default, Mar 22 2014, 22:59:38) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> t = 'my string'
>>> t[1]
'y'

在不使用正則表達式的狀況下可能對測試頗有用。 字符串是否包含結尾換行符? 正則表達式

>>> t[-1] == '\n'
False
>>> t = 'my string\n'
>>> t[-1] == '\n'
True

#2樓

我探索了完成此任務的另外兩種方法。 這可能對某人有幫助。 數組

第一個很簡單: 函數

In [25]: a = []
In [26]: s = 'foobar'
In [27]: a += s
In [28]: a
Out[28]: ['f', 'o', 'o', 'b', 'a', 'r']

第二個使用maplambda函數。 它可能適用於更復雜的任務: 測試

In [36]: s = 'foobar12'
In [37]: a = map(lambda c: c, s)
In [38]: a
Out[38]: ['f', 'o', 'o', 'b', 'a', 'r', '1', '2']

例如 spa

# isdigit, isspace or another facilities such as regexp may be used
In [40]: a = map(lambda c: c if c.isalpha() else '', s)
In [41]: a
Out[41]: ['f', 'o', 'o', 'b', 'a', 'r', '', '']

有關更多方法,請參見python文檔 code


#3樓

好吧,就像我喜歡列表版本同樣,這是我發現的另外一種更爲冗長的方式(可是它很酷,因此我認爲我應該將其添加到列表中): regexp

>>> text = "My hovercraft is full of eels"
>>> [text[i] for i in range(len(text))]
['M', 'y', ' ', 'h', 'o', 'v', 'e', 'r', 'c', 'r', 'a', 'f', 't', ' ', 'i', 's', ' ', 'f', 'u', 'l', 'l', ' ', 'o', 'f', ' ', 'e', 'e', 'l', 's']

#4樓

您也能夠不用list()來以很是簡單的方式進行操做:

>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']

#5樓

>>> for i in range(len(a)):
...     print a[i]
...

其中a是您要分離的字符串。 值「 a [i]」是字符串的單個字符,能夠將它們附加到列表中。

相關文章
相關標籤/搜索