2012-02-26 138 views
5
a = "Stack" 
aList = list(a) 

這給了我這樣的['S','t',a','c','k']list(string)如何將字符串拆分爲python中的一個字符數組?

我想知道這個list(string)功能是如何工作的一個數組中!

+3

我投反對票,以抵消未評論的反對票(一種非生產性反饋)。由於您在這裏看起來相當新,請讓我建議您閱讀[常見問題](http://stackoverflow.com/faq),如果尚未閱讀,請瀏覽幾個問題,注意常見的格式和內容約定。歡迎新手來這裏,不斷提問! – kmote 2012-02-26 02:56:06

+0

Python沒有數組。你在問什麼? – 2012-02-26 05:50:53

回答

7

字符串是一種可迭代的類型。例如,如果你這樣做:

for c in 'string': 
    print c 

你得到

s 
t 
r 
i 
n 
g 

所以傳遞一個字符串list只是遍歷字符字符串中,並把每一個在列表中。

4

字符串是iterable在Python,因爲你可以做

>>> for ch in "abc": 
...   print ch 
... 
a 
b 
c 
>>> 

,如果你在你的Python解釋器使用help("list")

class list(object) 
| list() -> new empty list 
| list(iterable) -> new list initialized from iterable's items 

因此,在listconstrutor看看,list("hello")返回一個新的列表初始化。

>>> x = list("hello") 
>>> type(x) 
<type 'list'> 
>>> 
0

這工作,因爲str實現__iter__,它允許iter(obj)要在對象上調用。對於str,實現按字符返回。

+0

謝謝大家!我想知道list()函數是如何工作的。你們給了我一個好主意! – Jagadheshwar 2012-02-26 18:34:31

0

大部分工作實際上是由字符串完成的。您實際上正在使用list類型的構造函數。在Python中,我們通常不太關心什麼是事情,而是關心他們能做什麼。

字符串可以做的是它可以給你(例如爲了使用for循環的目的)它的字符(實際上,長度爲1的子字符串;沒有單獨的字符類型)。 list構造函數期望任何可以做到這一點的對象,並構造一個包含如此提供的元素的列表。

相關問題