Split & Join Strings in Python
In Python, strings are sequences of characters. Various built-in functions are available to work with strings.
We often come across the need to split the string into a list of substrings (with use of a delimiter character to split the string) and to join a list of strings into a single string.
Splitting a String
We can use the string method ‘split()’ to split a string into a list of substrings. This method by default split the string into a list of substrings which are separated by blank space.
In the below example, we are calling split() method without passing any argument.
sample_string = "This is a string"
sub_strings = sample_string.split()
print(sub_strings)
Below is the result.
['This', 'is', 'a', 'string']
If we notice the string, there are two blank spaces between “a” and “string” and same is not present in the substring list.
We can also pass the specific delimiter while calling the “split()” method.
In the below example, we are calling split() method with one blank space “ ” as an argument and see how the result is different compared to the earlier example.
sample_string = "This is a string"
sub_strings = sample_string.split(" ")
print(sub_strings)
Below is the result.
['This', 'is', 'a', '', 'string']
We can see an additional entry with no data (this is because of having two blank spaces between “a” and “string”.
split() method considers one blank space as delimiter (as passed) and added an additional entry with no value.
Let’s have a look at another example by passing comma (,) as delimiter.
sample_string = "This,is,a,string"
sub_strings = sample_string.split(",")
print(sub_strings)
Below is the result.
['This', 'is', 'a', 'string']
There is one other useful argument we could pass to split() method i.e., maxsplit (maximum number of splits). This argument specifies how many splits are to be done on the string. If there are more number of delimiters than the max split passed, it would only split the maximum number of times specified.
sample_string = "This,is,a,string"
sub_strings = sample_string.split(",", 2)
print(sub_strings)
Below is the result.
['This', 'is', 'a,string']
Delimiter is present three times and if we don’t use the maximum split, string is split three times (i.e., four elements are returned in a substring.
In this example, we are passing ‘2’ as max split, so string is split maximum of two times i.e., would return 3 elements with out splitting the string for the 3rd time.
Joining a List of Strings
Similarly, we often need to join the list of strings. To join a list of strings into a single string, we can use the join() method.
This method takes a list of strings as an argument and returns a string that is the concatenation of the list elements, with a delimiter character between strings from the list passed.
Let’s have a look at an example.
substrings = ['This', 'is', 'a', 'string']
string = " ".join(substrings)
print(string)
Below is the result.
This is a string
Unlike split() where the method is called from a string and delimiter is passed as an argument, join() method is called from a delimiter and list of strings is passed as an argument.
And, Removing the blank space as a delimiter would not add any default space or any other character to separate the strings passed.
substrings = ['This', 'is', 'a', 'string']
string = "".join(substrings)
print(string)
Below is the result.
Thisisastring
We can use any other delimiter. Let’s have a look at another example by using “-” as a delimiter.
substrings = ['This', 'is', 'a', 'string']
string = "-".join(substrings)
print(string)
Below is the result.
This-is-a-string
As we have seen, the split() and join() methods are useful for manipulating strings in Python. They allow you to easily split a string into a list of substrings or join a list of strings into a single string, with the required delimiter. Hope this has been a bit of help in understanding the use of strings in Python.
Originally published at https://www.codewithpr.com.