The Python split function divides the string into several substrings based on the given separator. It has two arguments:
- separator. It tells on what basis we will split the string. It is optional.
- maxsplit. It is also an optional argument.
Its return type is the list. Without any argument, it will split as per spaces encountered in the string.
Syntax of split() function
str.split(separator, maxsplit)
split() without arguments
This means that it will assume space to be the separator.
My_string= 'This is a blog'
print(My_string.split())
Hence, the output will be:
['This', 'is','a','blog']
split() with a separator
Here, if we use a comma as the separator, it will divide the main string into sub-parts based on the occurrence of the comma. You can use any separator as per your choice.
str1= 'Cake,Eggs'
# split the string at a comma
print(str1.split(', '))
#will give output as
# ['Cake', 'Eggs']
Note: If you pass a separator as an argument that doesn’t exist in the string, then it won’t parse the string. Let’s try to get this with an example.
str1= 'Cake,Eggs'
# split the string at a colon
print(str1.split(':'))
#will give output as
# ['Cake, Eggs'] aka the original string only
split() with maxsplit argument
It will verify the number of splits you want. The return type will be 1 added to maxsplit.
Str = 'This,is,a,blog'
# if maxsplit is 1
print(Str.split(', ', 1))
#output: 'This' , 'is,a,blog'
# if maxsplit is 2
print(Str.split(', ', 2))
#output: 'This', 'is' , 'a,blog'
# if maxsplit is 0
print(Str.split(', ', 0))
#output: 'This,is,a,blog'
To interpret this piece of code, one has to get the idea of maxsplit simply. In case the integer specified for maxsplit is 0, this implies 0 splits are needed. So we got the exact same string as Str i.e., 0+1=1 division of the entire string, Str.
Similarly, when one was passed as a maxsplit argument, it resulted in 1+1=2 divisions. Hence we got the desired output.
Split with a character
You can also pass a character as an argument. So, the Python split() function will separate the string into divisions when it encounters the first occurrence of the given character.
Str = 'This,is,a,blog'
print(Str.split('h'))
#output: ['T', 'is,is,a,blog']
Str = 'Thisisahorse'
print(Str.split("h"))
#output: ['T', 'isisa', 'orse']
Split file content using splitlines()
Once you have opened a file in read mode, you can split the words in the file using the splitlines() function. It will display a list format of all words. Its syntax is:
My_file.splitlines())
Split an array in Python
numpy.array_split() function is used for splitting the array into smaller divisions. The return type is an array only. This works under the numpy module only. Its parameters are array, indices, and axis. The third one is optional. Indices mean the number of subarrays you wish to obtain.
import numpy as np
Arr= np.array([1, 2, 3, 4])
Result = np.array_split(Arr, 2)
print(Result)
#output : [array(1,2),array(3,4) ]
Hence, through this example, you can divide the array into two parts using the array_split function in Python. The return type is list only.
Split and join a string
After splitting the string, you might want to join it using a delimiter. This is possible through the join() function. Assume that the split string is passed as an argument to the join function. Now, you just need to specify the delimiter.
joined_string = '-'.join(split_string)
#syntax of join function
#string after splitting is sent as an argument to this function
Split with several delimiters
There might be a possibility of several delimiters in your string. In this case, use re module of Python. Consider the following example:
import re
stringA = 'W, is\n character'
#Here, delimeters are comma and new line character
print(re.split(",|\n", stringA))
#output : ['W', 'is' , 'character']
Python split() without removing the delimiter
Python has a split() function that will split a string into pieces based on the delimiter. This can be useful for splitting up files or other text that you want to parse, but it’s not always the best way to do it. If you have a piece of text that is already separated by some delimiter, like a comma or pipe symbol, then splitting the text with split() isn’t going to work. In this case, you should use join() instead.
Now, if you want to split without removing the delimiter, then, first, usually split by specifying the delimiter and then, using list comprehension, add that delimiter to each iteration. Split methods are based on the pattern-separator (or regex, if you prefer). The syntax for splitting a string is: str.split(pattern[, maxsplit])
Here the pattern is the pattern to split against, and maxsplit is the maximum number of splits allowed by the pattern; otherwise, it defaults to 1 (which means no limit). As an example, look at this,
str1 = 'work,with,pythonpool'
delim= ','
my_list = [x+delim for x in str1.split(delim) if x]
#output will be: ['work,', 'with,', 'pythonpool,']
Python split() vs split(‘ ‘)
In Python, you can use the split() function to create a list of elements from a string. You can also use the split(‘ ‘) function to create a list of elements from a string. The split() function is typically used when you have a single string to process and want to break it down into multiple parts, whereas the split(‘ ‘) function is typically used when you have multiple strings to process and want to break them down into multiple parts.
The split() function takes two arguments: the separator character and the max number of elements in your result list. The separator character is what separates each element in your result list; it must be a single character (like ‘,’ or ‘.’), not a regular expression or an exception that matches one of these characters.
The max number of elements in your result list is something that specifies how many times each element should be repeated before another new element is added to the end of your result list.
The split() function splits a string into multiple parts, while the split(‘ ‘) function splits the string into multiple parts and appends empty strings at the end of each part. Let’s take a look at an example:
s = 'hello world' >>> s.split ( ) [ 'hello', 'world' ]
Now let’s see how they perform on the same task:
s2 = "hello world" >>> s2.split ( ) [ 'ello', 'WORLD' ]
As you can see, they do pretty much the same thing. Now let’s look at another use case: if you want to split the text into words in Python. Using split(‘ ‘, 1) will return a list containing just the first word in your string and an empty list if there are no words left in your string after splitting it on whitespace or punctuation marks (commas, periods, etc.). Split(‘ ‘, 2) returns an array of two-element tuples containing only words separated by spaces or commas.*
Split in Python dataframe
Assume that after importing pandas, you have a dataframe column on which you have to perform the split function. It has several arguments. In this case, pat refers to a pattern suggesting the delimiter. True Value for expand means that you don’t need the answer in List format but in series format only.
df['name'].str.split(pat = ' ', expand = True)
Split email address in Python
If you want to extract the domain name from an email address, @ delimiter will be used. Index 1 will give the correct result.
dom= str1.split('@')[1]
re.split in Python
It is a regex function and is a part of the re module. It uses four parameters, namely pattern, string, maxsplit, and flags. The maxsplit value is mostly 0, and the same goes for the flag variable. As an example, look at the given code:
import re
string = "PYTHON,C,JAVA"
splitpattern = ","
res= re.split(splitpattern, string)
print(res)
#will split wherever, as delimiter is found
Split on the Last Occurrence
You may use rsplit to split on the last occurrence. It splits using a delimiter, or you may provide a stream of characters. Also, you need to specify how many splits you want. This is referenced by the maxsplit operator.
text = 'Python is one of the easiest languages to learn and it is extremely comprehensible.'
print(text.rsplit('is', 1))
#splits from the first 'is' from right
Split the list into sublists based on the value
The easiest way is to use itertools module. So import it. The group by function splits the list into desired keys. You need to specify the delimiter, and the groupby function will accordingly create the divisions. A simple for loop can be used to iterate over the set of values in the list. In addition to this, you can opt for other alternate ways too.
[list(group) for k, group in itertools.groupby(list1, lambda x: x==val) if not k]
# is a list comprehension
FAQs
It will decompose a large string into substrings.
Its return type is the list.
It means how many subdivisions you can have in the string.
Conclusion
This article covered how to use the Python split() function, its syntax, and its varied uses.