我希望能夠將包含字母的字符串拆分爲單獨的字母。從我下面的代碼;我預計變量f
包含['a','b']
但它沒有。有關我如何解決此問題的任何想法?Python:如何拆分沒有逗號或空格的字符串
a = "bc"
f = a.split()
print(f)
輸出:
['bc']
我希望能夠將包含字母的字符串拆分爲單獨的字母。從我下面的代碼;我預計變量f
包含['a','b']
但它沒有。有關我如何解決此問題的任何想法?Python:如何拆分沒有逗號或空格的字符串
a = "bc"
f = a.split()
print(f)
輸出:
['bc']
在這種情況下,你不必拆分:字符串是可迭代超過它的字符,所以你可以簡單地使用:
f = list(a)
這將構造一個列表,使每字符串中的字符是結果列表中的一個元素:
>>> a="foobar"
>>> f=list(a)
>>> f
['f', 'o', 'o', 'b', 'a', 'r']
如果您想獲得唯一的字母。
>>> 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']
如果通過方向迭代然後嘗試:
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()
進行拆分的方法與第一種方法相比效率更高。
啊,多虧了一羣哥們! – Mental
這也意味着你很可能不需要首先將它變成一個列表。 –
@ThijsvanDien:的確,儘管我已經看到它通常有辦法操縱字符串char-by-char,然後將它加入到字符串中。 –