Split string on whitespace in Python

Question:

I’m looking for the Python equivalent of

String str = "many   fancy word nhello    thi";
String whiteSpaceRegex = "\s";
String[] words = str.split(whiteSpaceRegex);

["many", "fancy", "word", "hello", "hi"]
Asked By: siamii

||

Answers:

The str.split() method without an argument splits on whitespace:

>>> "many   fancy word nhello    thi".split()
['many', 'fancy', 'word', 'hello', 'hi']
Answered By: Sven Marnach
import re
s = "many   fancy word nhello    thi"
re.split('s+', s)
Answered By: Óscar López

Another method through re module. It does the reverse operation of matching all the words instead of spitting the whole sentence by space.

>>> import re
>>> s = "many   fancy word nhello    thi"
>>> re.findall(r'S+', s)
['many', 'fancy', 'word', 'hello', 'hi']

Above regex would match one or more non-space characters.

Answered By: Avinash Raj

Using split() will be the most Pythonic way of splitting on a string.

It’s also useful to remember that if you use split() on a string that does not have a whitespace then that string will be returned to you in a list.

Example:

>>> "ark".split()
['ark']
Answered By: digitalnomd