如何在Python中按一个或多个分隔符分割?

53 投票
6 回答
69653 浏览
提问于 2025-04-15 20:42

我有一个来自日志文件的格式化字符串,内容大概是这样的:

>>> a="test                            result"

也就是说,测试和结果之间是用一些空格分开的——这可能是用格式化字符串生成的,给了test一些固定的间距。

简单的分割方法不太管用:

>>> a.split(" ")
['test', '', '', '', ... '', '', '', '', '', '', '', '', '', '', '', 'result']

split(DELIMITER, COUNT)去掉了一些不必要的值:

>>> a.split(" ",1)
['test', '                           result']

这有点帮助——但当然,我真正需要的是:

['test', 'result']

我可以用split()再加上mapstrip()来处理,但我在想有没有更符合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']

撰写回答