Skip to content
Related Articles
Open in App
Not now

Related Articles

Python | Convert given list into nested list

Improve Article
Save Article
  • Last Updated : 02 Jan, 2023
Improve Article
Save Article

Some times, we come over the data that is in string format in a list and it is required to convert it into a list of the list. This kind of problem of converting a list of strings to nested list is quite common in web development. Let’s discuss certain ways in which this can be performed. 

Method #1: Using iteration 

Python3




# Python code to convert list
# of string into list of list
 
# List initialization
Input = ['Geeeks, Forgeeks', '65.7492, 62.5405',
         'Geeks, 123', '555.7492, 152.5406']
          
temp = []
 
# Getting elem in list of list format
for elem in Input:
    temp2 = elem.split(', ')
    temp.append((temp2))
 
# List initialization
Output = []
 
# Using Iteration to convert
# element into list of list
for elem in temp:
    temp3 = []
    for elem2 in elem:
        temp3.append(elem2)
    Output.append(temp3)
 
# printing
print(Output)

Output:

[[‘Geeeks’, ‘Forgeeks’], [‘65.7492’, ‘62.5405’], [‘Geeks’, ‘123’], [‘555.7492’, ‘152.5406’]]

  Method #2 : Using ast [list with numeric values] 

Python3




# Python code to convert list
# of string into list of list
 
# importing
import ast
 
# List Initialization
Input = ['12, 454', '15.72, 82.85', '52.236, 25256', '95.9492, 72.906']
 
# using ast to convert
Output = [list(ast.literal_eval(x)) for x in Input]
 
# printing
print(Output)

Output:

[[12, 454], [15.72, 82.85], [52.236, 25256], [95.9492, 72.906]]

Method #3: Using map()+split()+lambda

We use the map function to apply a function (in this case, the split function) to each element in a list (in this case, the list of strings). The map function returns an iterator that applies the function to each element of the list, and returns the results as a new iterator.

To obtain the final result as a list, we use the list function to convert the iterator returned by map into a list.

Python3




#initializing list of strings
Input = ['Geeeks, Forgeeks', '65.7492, 62.5405',
'Geeks, 123', '555.7492, 152.5406']
#use the map function to apply the split function to each string in the list
Output = list(map(lambda x: x.split(', '), Input))
 
print("Result: "+str(Output))
# Output: [['Geeeks', 'Forgeeks'], ['65.7492', '62.5405'], ['Geeks', '123'], ['555.7492', '152.5406']]
#This code is contributed by Edula Vinay Kumar Reddy

Output

Result: [['Geeeks', 'Forgeeks'], ['65.7492', '62.5405'], ['Geeks', '123'], ['555.7492', '152.5406']]

Time complexity: O(n)

Auxiliary Space: O(n)


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!