用任意数量的空格分割字符串

jon*_*opf 12 python split

我正试图找到最像pythonic的方法来分割字符串

"字符串中的一些单词"

单个单词.string.split(' ')工作正常,但它返回列表中的一堆空白条目.当然我可以迭代列表并删除空格,但我想知道是否有更好的方法?

K Z*_*K Z 27

只需使用my_str.split()没有' '.


此外,您还可以通过指定第二个参数来指示要执行的拆分数:

>>> ' 1 2 3 4  '.split(None, 2)
['1', '2', '3 4  ']
>>> ' 1 2 3 4  '.split(None, 1)
['1', '2 3 4  ']
Run Code Online (Sandbox Code Playgroud)


cod*_*ict 12

怎么样:

re.split(r'\s+',string)
Run Code Online (Sandbox Code Playgroud)

\s任何空白都是空的.所以\s+是一个连续的空白.


Thi*_*ter 5

使用string.split()不带参数或 re.split(r'\s+', string)代替:

>>> s = 'some words in a string   with  spaces'
>>> s.split()
['some', 'words', 'in', 'a', 'string', 'with', 'spaces']
>>> import re; re.split(r'\s+', s)
['some', 'words', 'in', 'a', 'string', 'with', 'spaces']
Run Code Online (Sandbox Code Playgroud)

来自文档:

如果sep未指定或是None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾处不包含空字符串.因此,将空字符串或仅包含空格的字符串与None分隔符分开返回[].