2017-02-12 75 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()進行拆分的方法與第一種方法相比效率更高。

相關問題