given_string.splitlines() to split a given string by newline.
text = 'Python\nJava\nC#' print(text.splitlines()) # Output: ['Python', 'Java', 'C#']
📜Problem: Given a string, How will you split the string into a list of words using newline as a separator/delimiter?
# Input text = """abc def ghi """ # Expected Output ['abc', 'def', 'ghi']
Let’s dive into the different ways of solving the given problem.
Method 1: Using splitlines
Approach: The easiest way to split a given string by newline is to use the
splitlines() method, i.e., simply use –
splitlines() is a built-in method in Python that splits a string at line breaks such as
'\n' and returns a split list of substrings (i.e., lines). For example,
'finxter\nis\ncool'.splitlines() will return the following list:
['finxter', 'is', 'cool'].
# Input text = """abc def ghi """ print(text.splitlines()) # Output: ['abc', 'def', 'ghi']
🌎Related Read: Python String splitlines()
Method 2: Using split()
'given_string'.split() to split the given string by a new line character.
split method by default splits a given string by any whitespace character, hence this method will work on our problem as newline(“\n”) is also a whitespace character.
# Input text = """abc def ghi """ print(text.split()) # Output: ['abc', 'def', 'ghi']
⚠️Caution: If you have spaces or tabs in the given string then this method will fail. In case, you try to use
s.split('\n') to mitigate the problem, you will still get an extra empty string if there’s a new line character at the end of the given string. Here’s an example that shows when not to use split while splitting a given string by newline.
# Input text = """abc lmn yzx def opq zxy ghi rst xyz""" print(text.split()) # Output: ['abc', 'lmn', 'yzx', 'def', 'opq', 'zxy', 'ghi', 'rst', 'xyz'] # Input text = """abc def ghi """ print(text.split('\n')) # Output: ['abc', 'def', 'ghi', '']
🌎Related Read: Python String split()
Method 3: Using regex
Another way to solve the given problem is to use the split method of the regex module. Since the given string has a new line at the end, hence the last item returned by the
re.split method will be an empty string. This means the resultant list will look something like this –
['abc', 'def', 'ghi', '']. To eliminate the extra empty item in the list you can use a list comprehension and specify an if condition to eliminate the occurence of the empty item in the string.
import re text = """abc def ghi """ print([x for x in re.split("\n", text) if x!='']) # Output: ['abc', 'def', 'ghi']
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'].
🌎Read more here – Python Regex Split
Do you want to master the regex superpower? Check out my new book The Smartest Way to Learn Regular Expressions in Python with the innovative 3-step approach for active learning: (1) study a book chapter, (2) solve a code puzzle, and (3) watch an educational chapter video.
We have successfully solved the given problem using different approaches. I hope you enjoyed this article and it helps you in your Python coding journey. Please subscribe and stay tuned for more interesting articles!
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: