Skip to content
Related Articles
Open in App
Not now

Related Articles

Python | Convert a string representation of list into list

Improve Article
Save Article
Like Article
  • Last Updated : 27 Mar, 2023
Improve Article
Save Article
Like Article

Many times, we come across the dumped data that is found in the string format and we require it to be represented into the actual list format in which it was actually found. This kind of problem of converting a list represented in string format back to list to perform tasks is quite common in web development. Let’s discuss certain ways in which this can be performed.

Method #1: Using split() and strip() 

Python3




# Python code to demonstrate converting
# string representation of list to list
# using strip and split
 
# initializing string representation of a list
ini_list = "[1, 2, 3, 4, 5]"
 
# printing initialized string of list and its type
print("initial string", ini_list)
print(type(ini_list))
 
# Converting string to list
res = ini_list.strip('][').split(', ')
 
# printing final result and its type
print("final list", res)
print(type(res))

Output:

initial string [1, 2, 3, 4, 5]
<class 'str'>
final list ['1', '2', '3', '4', '5']
<class 'list'>

Time complexity: O(n), where n is the length of the string representation of the list.
Auxiliary space: O(1).

Method #2: Using ast.literal_eval() 

Python3




# Python code to demonstrate converting
# string representation of list to list
# using ast.literal_eval()
import ast
 
# initializing string representation of a list
ini_list = "[1, 2, 3, 4, 5]"
 
# printing initialized string of list and its type
print("initial string", ini_list)
print(type(ini_list))
 
# Converting string to list
res = ast.literal_eval(ini_list)
 
# printing final result and its type
print("final list", res)
print(type(res))

Output:

initial string [1, 2, 3, 4, 5]
<class 'str'>
final list [1, 2, 3, 4, 5]
<class 'list'>

Time complexity: O(n), where n is the length of the input string representation of the list. 

Auxiliary space complexity: O(n), where n is the length of the input string representation of the list. 

Method #3: Using json.loads() 

Python3




# Python code to demonstrate converting
# string representation of list to list
# using json.loads()
import json
 
# initializing string representation of a list
ini_list = "[1, 2, 3, 4, 5]"
 
# printing initialized string of list and its type
print("initial string", ini_list)
print(type(ini_list))
 
# Converting string to list
res = json.loads(ini_list)
 
# printing final result and its type
print("final list", res)
print(type(res))

Output:

initial string [1, 2, 3, 4, 5]
<class 'str'>
final list [1, 2, 3, 4, 5]
<class 'list'>

Time complexity: The time complexity of the json.loads() method is linear, O(n), where n is the length of the input string.

Auxiliary space: The auxiliary space complexity of this code is O(n), where n is the length of the input string.

Method #4: Using re

Here is an example of how you can use a regular expression to convert a string representation of a list into a list:

Python3




import re
 
ini_list = "[1, 2, 3, 4, 5]"
 
# Extract the elements of the list from the string
elements = re.findall(r'\d+', ini_list)
 
# Convert the elements to integers
res = [int(x) for x in elements]
print(res)  # [1, 2, 3, 4, 5]
# This code is contributed by Edula Vinay Kumar Reddy

Output

[1, 2, 3, 4, 5]

Time complexity: O(n), where n is the number of elements in the list. 
Auxiliary space: O(n), since the elements of the list are stored in a new list.

Note: This approach assumes that the string representation of the list contains only integers.

Method #5: Using eval

Python3




# initializing string representation of a list
ini_list = "[1, 2, 3, 4, 5]"
 
# printing initialized string of list and its type
print("initial string", ini_list)
print(type(ini_list))
 
# Converting string to list
res = eval(ini_list)
 
# printing final result and its type
print("final list", res)
print(type(res))
# This code is contributed Vinay Pinjala.

Output

initial string [1, 2, 3, 4, 5]
<class 'str'>
final list [1, 2, 3, 4, 5]
<class 'list'>

Time Complexity: O(n)
Auxiliary Space: O(n)

Method #6: Using list and map.

Approach:

  1. Initialize a string variable ini_list with a string representation of a list [1, 2, 3, 4, 5].
  2. Print the initial string representation of the list and its type using the print() function and the type() function respectively.
  3. Use the list() function and the map() function to convert the string to a list of integers. The map() function takes two arguments: a function (in this case, the int() function) and an iterable (in this case, a list of string representations of integers obtained by slicing the string from index 1 to -1 and then splitting it at the commas). The list() function then converts the resulting map object into a list.
  4. Print the final list and its type using the print() function and the type() function respectively.

Python3




# initializing string representation of a list
ini_list = "[1, 2, 3, 4, 5]"
 
# printing initialized string of list and its type
print ("initial string", ini_list)
print (type(ini_list))
 
# Converting string to list
res = list(map(int, ini_list[1:-1].split(',')))
 
# printing final result and its type
print ("final list", res)
print (type(res))
#This code is contributed tvsk.

Output

initial string [1, 2, 3, 4, 5]
<class 'str'>
final list [1, 2, 3, 4, 5]
<class 'list'>

Time Complexity: O(n)
Auxiliary Space: O(n)


My Personal Notes arrow_drop_up
Like Article
Save Article
Related Articles

Start Your Coding Journey Now!