Python | Split String Space

โญSummary: Use "given string".split(' ') to split the given string by space and store each word as an individual item in a list. Some other ways to split using space include using a list comprehension and the regex library.

Minimal Example

text = "abc xyz lmn pqr"

# Method 1
print(text.split())

# Method 2
import re
print(re.split(' ', text))

# Method 3
print(list(filter(None, text.split())))

# Method 4
print([x for x in re.findall(r'\S+', text) if x != ''])

# OUTPUT: ['abc', 'xyz', 'lmn', 'pqr']

Problem Formulation

๐Ÿ“œProblem: Given a string, how will you split the string into a list of words using space as a delimiter?

Example: Letโ€™s understand the problem with the help of an example.

# Input:
text = "Python C Java C++"

# Output:
['Python', 'C', 'Java', 'C++']

Now without any further ado, letโ€™s dive into the numerous ways of solving this problem.

Method 1: Using split()

Pythonโ€™s built-in split() function splits the string at a given separator and returns a split list of substrings. Hereโ€™s how the split() function works: 'finxterx42'.split('x') will split the string with the character โ€˜xโ€™ as the delimiter and return the following list as an output: ['fin', 'ter', '42'].

Approach: To split a string by space, you can simply use the split() function directly without specifying any separator. If no separator is specified, the split() function uses whitespaces as separator by default.

Code:

text = "Python C Java C++"
print(text.split())

# ['Python', 'C', 'Java', 'C++']

๐Ÿ†Related Read: Python String split()

Method 2: Using re.split()

Another way of separating a string by using the underscore as a separator is to use the re.split() method from the regex library. The re.split(pattern, string) method matches all occurrences of the pattern in the string and divides the string along the matches resulting in a list of strings between the matches. For example, re.split('a', 'bbabbbab') results in the list of strings ['bb', 'bbb', 'b'].

Approach: You can use the re.split() method as re.split(' ', text) where ' ' returns a match whenever the string contains a space. Whenever any space is encountered, the string gets separated and the split substring gets stored as an element within the resultant list.

Code:

import re
text = "Python C Java C++"
print(re.split(' ', text))

# ['Python', 'C', 'Java', 'C++']

๐Ÿ†Related Read: Python Regex Split

Method 3: Using filter()

Pythonโ€™s built-in filter() function filters out the elements that pass a filtering condition. It takes two arguments: (i) function and (ii) iterable. The function assigns a Boolean value to each element in the iterable to check whether the element will pass the filter or not. It returns an iterator with the elements that passes the filtering condition.

Approach: Use the filter() method to split the string by space. The function takes None as the first argument and the list of split strings as the second argument. The filter() function then iterates through the list and removes any empty elements. As the filter() method returns an iterator object, we need to use the list() constructor to convert the object into a list.

Code:

text = "Python C Java C++"
print(list(filter(None, text.split())))

# ['Python', 'C', 'Java', 'C++']

๐Ÿ†Related Read: Python filter()

Method 4: Using re.findall()

The re.findall(pattern, string) method scans the string from left to right, searching for all non-overlapping matches of the pattern. It returns a list of strings in the matching order- when scanning the string from left to right.

Approach: You can use the re.findall() method from the regex module to split the string by space. Use ‘\S+‘ as the pattern that can be fed into the findall function to solve the problem. It simply means all the characters except space will be grouped together.

Code:

import re
text = "Python C Java C++"
print([x for x in re.findall(r'\S+', text) if x != ''])

# ['Python', 'C', 'Java', 'C++']

๐Ÿ†Related Read: Python re.findall() โ€“ Everything You Need to Know

Google, Facebook, and Amazon engineers are regular expression masters. If you want to become one as well, check out our new book: The Smartest Way to Learn Python Regex (Amazon Kindle/Print, opens in new tab).

Conclusion

Hurrah! We have successfully solved the given problem using as many as four different ways. I hope this article helped you. Please subscribe and stay tuned for more interesting articles!

Related Reads:
๐Ÿ† Python | Split String Variable Spaces
๐Ÿ† Python | Split String by Comma and Whitespace
๐Ÿ† Python | Split String by Whitespace
๐Ÿ† Python | Split String and Keep Whitespace


Python Regex Course

Google engineers are regular expression masters. The Google search engine is a massive text-processing engine that extracts value from trillions of webpages.ย ย 

Facebook engineers are regular expression masters. Social networks like Facebook, WhatsApp, and Instagram connect humans via text messages.ย 

Amazon engineers are regular expression masters. Ecommerce giants ship products based on textual product descriptions.ย ย Regular expressions โ€‹rule the game โ€‹when text processing โ€‹meets computer science.ย 

If you want to become a regular expression master too, check out the most comprehensive Python regex course on the planet: