2017-02-12 134 views

回答

4

在这种情况下,你不必拆分:字符串是可迭代超过它的字符,所以你可以简单地使用:

f = list(a) 

这将构造一个列表,使字符串中的字符是结果列表中的一个元素:

>>> a="foobar" 
>>> f=list(a) 
>>> f 
['f', 'o', 'o', 'b', 'a', 'r'] 
+0

啊,多亏了一群哥们! – Mental

+2

这也意味着你很可能不需要首先将它变成一个列表。 –

+1

@ThijsvanDien:的确,尽管我已经看到它通常有办法操纵字符串char-by-char,然后将它加入到字符串中。 –

0

如果您想获得唯一的字母。

>>> val = 'abcdefg 12' 
>>> [item for item in list(val) if item.isalpha()] 
['a', 'b', 'c', 'd', 'e', 'f', 'g'] 

另一种解决方案:

>>> filter(lambda x: x.isalpha(), list(val)) 
['a', 'b', 'c', 'd', 'e', 'f', 'g'] 
0

如果通过方向迭代然后尝试:

x=[i for i in a] 

现在分析其相对于对于list(a)时间;

[email protected]:~$ python -m timeit "a='foobar';x=[i for i in a]" 
1000000 loops, best of 3: 0.443 usec per loop 
[email protected]:~$ python -m timeit "a='foobar';list(a)" 
1000000 loops, best of 3: 0.385 usec per loop 

因此使用list()进行拆分的方法与第一种方法相比效率更高。

相关问题