拆分字符串并删除空白Python

时间:2014-01-21 14:46:36

标签: python regex split whitespace strip

我想用逗号','拆分一个字符串,并从每个拆分的开头和结尾删除空格。

例如,如果我有字符串:

"QVOD, Baidu Player"

我想拆分并剥离:

['QVOD', 'Baidu Player']

有一种优雅的方式吗?可能使用列表理解?

2 个答案:

答案 0 :(得分:10)

Python有一个名为split的壮观功能,可以让你不必使用正则表达式或类似的东西。您只需拨打my_string.split(delimiter)

即可拆分字符串

之后python有一个strip函数,它将从字符串的开头和结尾删除所有空格。

[item.strip() for item in my_string.split(',')]

这两种方法的基准如下:

>>> import timeit
>>> timeit.timeit('map(str.strip, "QVOD, Baidu Player".split(","))', number=100000)
0.3525350093841553
>>> timeit.timeit('map(stripper, "QVOD, Baidu Player".split(","))','stripper=str.strip', number=100000)
0.31575989723205566
>>> timeit.timeit("[item.strip() for item in 'QVOD, Baidu Player'.split(',')]", number=100000)
0.246596097946167

因此列表组合比地图快约33%。

可能还值得注意的是,就“pythonic”而言,Guido自己投票支持LC。 http://www.artima.com/weblogs/viewpost.jsp?thread=98196

答案 1 :(得分:4)

一种小功能方法。 split函数,根据,拆分字符串,str.stripmap删除每个元素。

>>> stripper = str.strip
>>> map(stripper, "QVOD, Baidu Player".split(","))
['QVOD', 'Baidu Player']

很少的时间比较

import timeit
stripper = str.strip
print timeit.timeit('map(stripper, "QVOD, Baidu Player".split(","))', "from __main__ import stripper", number=100000)
print timeit.timeit("[item.strip() for item in 'QVOD, Baidu Player'.split(',')]", number=100000)

我机器上的输出

0.553178071976
0.569463968277

因此,List理解方法和map方法的表现几乎相同。