In this short tutorial, find how to convert string to list in Python. We look at all the ways you can achieve this along with their pros and cons.
This tutorial is a part of our initiative at Flexiple, to write short curated tutorials around often used or interesting concepts.
- Converting string to list in Python
- Solution 1: Using Split()
- Solution 2: Using list()
- Limitations, and Caveats
Data type conversion or type casting in Python is a very common practice. However, converting string to list in Python is not as simple as converting an int to string or vice versa.
Strings can be converted to lists using
list(). We will look at this method below. However, in this method, Python would not know where each item starts and ends, returning a list of characters. Hence, Python provides a few alternate methods which can be used to convert a string to a list.
The split method is used to split a string based on a specified delimiter. Once split, it returns the split string in a list, using this method we can convert string to list in Python.
string.split( delimiter, maxsplit)
- Delimiter - Optional. Specifies the desired delimiter to use when splitting the string. If left empty, whitespaces are considered delimiters.
- Maxsplit - Optional. Specifies how many splits to do.
str_1 = "Hire the top 1% freelance developers" list_1 = str_1.split() print(list_1) #Output: #['Hire', 'the', 'top', '1%', 'freelance', 'developers']
Note: Since no argument was passed as a delimiter, the string was split on whitespace.
Now let’s take a look at an instance where the delimiter is specified.
str_1 = "Hire-the-top-1%-freelance-developers" list_1 = str_1.split("-") print(list_1) #Output: #['Hire', 'the', 'top', '1%', 'freelance', 'developers']
As aforementioned, this method converts a string into a list of characters. Hence this method is not used quite often. I would recommend using this method only if you are certain that the list should contain each character as an item and if the string contains a set of characters or numbers that are not divided by a space. If not, the spaces would also be considered as a character and stored in a list.
str_1 = "Hire freelance developers" list_1 = list(str_1.strip(" ")) print(list_1) #Output: ['H', 'i', 'r', 'e', ' ', 'f', 'r', 'e', 'e', 'l', 'a', 'n', 'c', 'e', ' ', 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 's']
The split() method is the recommended and most common method used to convert string to list in Python. This method does not have any significant cons. On the other hand, the typecast method is not widely recommended and is used only when the requirements are met. However, please feel free to practice both methods to facilitate a better understanding of the concept.
Do let me know your thoughts in the comments section below. :)