list(string)如何将字符串拆分为python中的一个字符数组?

问题描述:

a = "Stack" 
aList = list(a) 

这给了我这样的['S','t',a','c','k']list(string)如何将字符串拆分为python中的一个字符数组?

我想知道这个list(string)功能是如何工作的一个数组中!

+3

我投反对票,以抵消未评论的反对票(一种非生产性反馈)。由于您在这里看起来相当新,请让我建议您阅读[常见问题](http://*.com/faq),如果尚未阅读,请浏览几个问题,注意常见的格式和内容约定。欢迎新手来这里,不断提问! – kmote 2012-02-26 02:56:06

+0

Python没有数组。你在问什么? – 2012-02-26 05:50:53

字符串是一种可迭代的类型。例如,如果你这样做:

for c in 'string': 
    print c 

你得到

s 
t 
r 
i 
n 
g 

所以传递一个字符串list只是遍历字符字符串中,并把每一个在列表中。

字符串是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'> 
>>> 

这工作,因为str实现__iter__,它允许iter(obj)要在对象上调用。对于str,实现按字符返回。

+0

谢谢大家!我想知道list()函数是如何工作的。你们给了我一个好主意! – Jagadheshwar 2012-02-26 18:34:31

大部分工作实际上是由字符串完成的。您实际上正在使用list类型的构造函数。在Python中,我们通常不太关心什么是事情,而是关心他们能做什么。

字符串可以做的是它可以给你(例如为了使用for循环的目的)它的字符(实际上,长度为1的子字符串;没有单独的字符类型)。 list构造函数期望任何可以做到这一点的对象,并构造一个包含如此提供的元素的列表。