我希望能够将包含字母的字符串拆分为单独的字母。从我下面的代码;我预计变量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,然后将它加入到字符串中。 –