2024-05-13 18:45:22 发布
网友
我想用逗号','分隔一个字符串,并从每个分隔的开始和结束处删除空白。
','
例如,如果我有字符串:
"QVOD, Baidu Player"
我想分开脱光衣服:
['QVOD', 'Baidu Player']
有没有一种优雅的方式来做这件事?可能使用列表理解?
Python有一个非常棒的函数split,它可以让您不必使用regex或类似的东西。您可以通过调用my_string.split(delimiter)来拆分字符串
split
my_string.split(delimiter)
之后,python有一个strip函数,该函数将删除字符串开头和结尾的所有空白。
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剥离。
,
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方法的性能几乎相同。
Python有一个非常棒的函数
split
,它可以让您不必使用regex或类似的东西。您可以通过调用my_string.split(delimiter)
来拆分字符串之后,python有一个
strip
函数,该函数将删除字符串开头和结尾的所有空白。这两种方法的基准如下:
所以列表组件比地图快33%。
或许还值得注意的是,就“Python”而言,圭多本人投票支持LC。http://www.artima.com/weblogs/viewpost.jsp?thread=98196
一点实用的方法。
split
函数,基于,
拆分字符串,每个元素将由str.strip
剥离,由map
剥离。时间比较少
我的机器上的输出
因此,列表理解方法和
map
方法的性能几乎相同。相关问题 更多 >
编程相关推荐