如何在Python中按一个或多个分隔符分割?
我有一个来自日志文件的格式化字符串,内容大概是这样的:
>>> a="test result"
也就是说,测试和结果之间是用一些空格分开的——这可能是用格式化字符串生成的,给了test
一些固定的间距。
简单的分割方法不太管用:
>>> a.split(" ")
['test', '', '', '', ... '', '', '', '', '', '', '', '', '', '', '', 'result']
split(DELIMITER, COUNT)
去掉了一些不必要的值:
>>> a.split(" ",1)
['test', ' result']
这有点帮助——但当然,我真正需要的是:
['test', 'result']
我可以用split()
再加上map
和strip()
来处理,但我在想有没有更符合Python风格的方法。
谢谢,
亚当
更新:这么简单的解决方案!谢谢大家。
6 个回答
24
这个应该可以正常工作:
a.split()
举个例子:
>>> 'a b'.split(' ')
['a', '', '', '', '', '', 'b']
>>> 'a b'.split()
['a', 'b']
来自文档的说明:
如果没有指定分隔符,或者分隔符是None,那么会使用不同的分割方法:连续的空白字符会被视为一个分隔符。如果字符串的开头或结尾有空白字符,结果中不会包含空字符串。因此,分割一个空字符串或者仅由空白组成的字符串,使用None作为分隔符会返回一个空列表[]。
50
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水桶倒到另一个水桶里。
有些时候,我们会遇到一些问题,比如数据的格式不对,或者数据不完整。这就像是你想把水倒进一个小杯子,但水桶里的水太多,杯子装不下。
为了避免这些问题,我们可以提前检查一下数据,确保它们是正确的。就像在倒水之前,先看看杯子是不是干净,能不能装下水。
总之,处理数据的时候,要小心谨慎,确保每一步都能顺利进行,这样才能得到想要的结果。
>>> import re
>>> a="test result"
>>> re.split(" +",a)
['test', 'result']
>>> a.split()
['test', 'result']
89
就是不要给任何分隔符吗?
>>> a="test result"
>>> a.split()
['test', 'result']