分割字符串并移除空格Python

2024-05-13 18:45:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用逗号','分隔一个字符串,并从每个分隔的开始和结束处删除空白。

例如,如果我有字符串:

"QVOD, Baidu Player"

我想分开脱光衣服:

['QVOD', 'Baidu Player']

有没有一种优雅的方式来做这件事?可能使用列表理解?


Tags: 字符串列表方式空白player逗号baidu衣服
2条回答

Python有一个非常棒的函数split,它可以让您不必使用regex或类似的东西。您可以通过调用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%。

或许还值得注意的是,就“Python”而言,圭多本人投票支持LC。http://www.artima.com/weblogs/viewpost.jsp?thread=98196

一点实用的方法。split函数,基于,拆分字符串,每个元素将由str.strip剥离,由map剥离。

>>> 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

因此,列表理解方法和map方法的性能几乎相同。

相关问题 更多 >